Существует два способа передачи объекта, который можно получить при выполнении задания Quartz:
Передача экземпляра в карту данных.Когда вы настроите задание, добавьте свой экземпляр на карту с помощью ключа, подобного следующему:
// Create job etc...
var MyClass _myInstance;
statusJob.JobDataMap.Put("myKey", _myInstance);
// Schedule job...
Получите экземпляр в методе задания Execute()
, например:
public void Execute(IJobExecutionContext context)
{
var dataMap = context.MergedJobDataMap;
var myInstance = (MyClass)dataMap["myKey"];
ИЛИ
Добавьте экземпляр в контекст планировщика при настройке задания, например:
ISchedulerFactory schedFact = new StdSchedulerFactory();
_sched = schedFact.GetScheduler();
_sched.Start();
// Create job etc...
var MyClass _myInstance;
_sched.Context.Put("myKey", myInstance);
// Schedule job...
Извлеките экземпляр в методе задания Execute()
следующим образом:
public void Execute(IJobExecutionContext context)
{
var schedulerContext = context.Scheduler.Context;
var myInstance = (MyClass)schedulerContext.Get("myKey");