Я только начал использовать Quartz.Net - в основном я хочу запускать его как службу Windows и планировать задания, которые находятся в разных сборках, используя интерфейс IJob. Для этого по умолчанию мне нужно поставить сборки, содержащие задания (и все их зависимости) в корневую папку с помощью Quartz.exe. Все хорошо - у меня это работает. Однако я хотел бы поместить различные задания из разных сборок в определенные папки в корневом каталоге. Когда я делаю это Quartz can not, разрешаю зависимости - я понимаю, что могу создать свой собственный алгоритм сборки, но я понятия не имею, где его поставить или что его создать, - любая помощь была бы замечательной..Net Quartz Windows Service разрешает задания на работу
Я попытался создать свой собственный JobFactory и разрешить зависимые ситуации там, основываясь на предоставленном пути. Однако dosnt работы - по какой-то причине JobFactory терпит неудачу, потому что не может найти работу dependecies - который головоломная, потому что работа только создается в методе JobFactory.NewJob, как показано ниже:
public class MyQuartzJobFactory : IJobFactory
{ // Значит ли это строка не выполняется, потому что она не может найти зависимость private static readonly ILog log = LogManager.GetLogger (typeof (MyQuartzJobFactory));
public IJob NewJob(TriggerFiredBundle bundle, IScheduler scheduler)
{
IJobDetail jobDetail = bundle.JobDetail;
Type jobType = jobDetail.JobType;
try
{
if (log.IsDebugEnabled)
{
log.Debug(string.Format(CultureInfo.InvariantCulture, "Producing instance of Job '{0}', class={1}", jobDetail.Key, jobType.FullName));
}
string path = "";
if (jobDetail.JobDataMap.ContainsKey("custPath"))
{
path = jobDetail.JobDataMap["custPath"].ToString();
}
return ObjectUtils.InstantiateType<IJob>(jobType);
}
catch (Exception e)
{
SchedulerException se = new SchedulerException(string.Format(CultureInfo.InvariantCulture, "Problem instantiating class '{0}'", jobDetail.JobType.FullName), e);
throw se;
}
}
/// <summary>
/// Allows the job factory to destroy/cleanup the job if needed.
/// No-op when using SimpleJobFactory.
/// </summary>
public void ReturnJob(IJob job)
{
var disposable = job as IDisposable;
if (disposable != null)
{
disposable.Dispose();
}
}
}
Я думаю, вам нужно определить свой собственный «JobFactory», http://stackoverflow.com/questions/20587433/whats-the-purpose-of-returnjob-in-ijobfactory-interface-for-quartz-net – FSou1
Нет Я пробовал это, и он работал dosnt - по какой-то причине он не сработал JobFactory, потому что он не может найти зависимости Job - что вызывает недоумение, потому что Job создается только в методе JobFactory.NewJob. – gisWeeper