【发布时间】:2020-01-09 04:52:39
【问题描述】:
如果我不创建空构造函数,我的 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。
【问题讨论】:
-
需要澄清实际上想要做什么。正如目前所写的那样,很难准确地说出问题是什么以及被问到了什么。
-
问题出在CalculateManager 的不同实例中。但它必须与一个实例一起工作
标签: c# quartz-scheduler