IJobDetail job = JobBuilder.Create 在同一实例中。 Quartz.NET
IJobDetail job = JobBuilder.Create in same instance. Quartz.NET
如果我不创建空构造函数,我的 Execute 将不起作用。
我的代码
public class CalculateManager : ICalculateManager, IJob
{
static IStrongDataRepository _strongDataRepository;
private readonly ICalculateProtocolOne _calculateOne;
private Dictionary<string, CalculateModel> _resultDictionary;
public CalculateManager(IStrongDataRepository strongDataRepository,
ICalculateOne calculateOne)
{
_calculateOne = calculateOne;
_resultDictionary = new Dictionary<string, CalculateModel>();
this.Start();
}
public async Task Execute(IJobExecutionContext context)
{
Console.WriteLine("Here");
var x = _resultDictionary;
}
public CalculateManager()
{
}
public async void Start()
{
TimeSpan startTime = new TimeSpan(16, 36, 0);
DateTime now = DateTime.Today.Add(startTime);
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<CalculateManager>().Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(now)
.WithSimpleSchedule(x => x
.WithIntervalInMinutes(2)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
如果我不会创建空的构造函数。我的 quarz build 将无法运行。但是这样我有两个不同的实例。在这个 var x = _resultDictionary;
我有空。但实际上,当它在第一个实例中使用所有必要的接口创建时,_resultDictionary 中有很多来自计算的结果。我需要如何创建 IJobDetail job
它使用相同的实例。
我在 class 中创建了一个静态变量
static List<CalculateManager> _instanceList = new List<CalculateManager>()
;
并将所有实例放入此列表。当Quartz.NET开始执行。它在没有参数的构造器的实例上开始执行。我以这种方式罚款我的 Instatce。
var instance = _instanceList[0];
如果我不创建空构造函数,我的 Execute 将不起作用。
我的代码
public class CalculateManager : ICalculateManager, IJob
{
static IStrongDataRepository _strongDataRepository;
private readonly ICalculateProtocolOne _calculateOne;
private Dictionary<string, CalculateModel> _resultDictionary;
public CalculateManager(IStrongDataRepository strongDataRepository,
ICalculateOne calculateOne)
{
_calculateOne = calculateOne;
_resultDictionary = new Dictionary<string, CalculateModel>();
this.Start();
}
public async Task Execute(IJobExecutionContext context)
{
Console.WriteLine("Here");
var x = _resultDictionary;
}
public CalculateManager()
{
}
public async void Start()
{
TimeSpan startTime = new TimeSpan(16, 36, 0);
DateTime now = DateTime.Today.Add(startTime);
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<CalculateManager>().Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartAt(now)
.WithSimpleSchedule(x => x
.WithIntervalInMinutes(2)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
如果我不会创建空的构造函数。我的 quarz build 将无法运行。但是这样我有两个不同的实例。在这个 var x = _resultDictionary;
我有空。但实际上,当它在第一个实例中使用所有必要的接口创建时,_resultDictionary 中有很多来自计算的结果。我需要如何创建 IJobDetail job
它使用相同的实例。
我在 class 中创建了一个静态变量
static List<CalculateManager> _instanceList = new List<CalculateManager>()
;
并将所有实例放入此列表。当Quartz.NET开始执行。它在没有参数的构造器的实例上开始执行。我以这种方式罚款我的 Instatce。
var instance = _instanceList[0];