Quartz.NET 三层架构 С#
Quartz.NET three level architecture С#
有一个class继承自IJob接口。此 class 的一个实例是通过接口的实现创建的。在这个 class 的构造函数中,我调用了一个方法来启动石英
ExecuteTimeBuilder.Start();
public class CalculateManager : ICalculateManager, IJob
{
private readonly IStrongDataRepository _strongDataRepository;
public CalculateManager(IStrongDataRepository strongDataRepository)
{
_strongDataRepository = strongDataRepository;
ExecuteTimeBuilder.Start();
}
public async Task Execute(IJobExecutionContext context)
{
Console.WriteLine("HelloJob is executing.");
}
方法.Start()
public static async void Start()
{
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<CalculateManager>()
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(10)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
Execute 方法只是没有开始工作。这是控制台应用程序。Core 3.0 接口在自定义 StartUp class
中注册
public void ConfigureServices(IServiceCollection services)
{
services.AddLogging();
services.AddSingleton<IConfigurationRoot>(Configuration);
services.AddSingleton<IStrongDataRepository, StrongDataRepository>();
services.AddSingleton<ICalculateManager, CalculateManager>();
services.AddDbContext<ApplicationDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
为什么我的方法 Task Execute(IJobExecutionContext context) 没有显示生命迹象。它不叫。
它不起作用,因为我在构造函数为空的另一个实例上调用它。我需要反思并在其他实例中调用我的方法。正在工作
有一个class继承自IJob接口。此 class 的一个实例是通过接口的实现创建的。在这个 class 的构造函数中,我调用了一个方法来启动石英
ExecuteTimeBuilder.Start();
public class CalculateManager : ICalculateManager, IJob
{
private readonly IStrongDataRepository _strongDataRepository;
public CalculateManager(IStrongDataRepository strongDataRepository)
{
_strongDataRepository = strongDataRepository;
ExecuteTimeBuilder.Start();
}
public async Task Execute(IJobExecutionContext context)
{
Console.WriteLine("HelloJob is executing.");
}
方法.Start()
public static async void Start()
{
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<CalculateManager>()
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(10)
.RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
}
Execute 方法只是没有开始工作。这是控制台应用程序。Core 3.0 接口在自定义 StartUp class
中注册public void ConfigureServices(IServiceCollection services)
{
services.AddLogging();
services.AddSingleton<IConfigurationRoot>(Configuration);
services.AddSingleton<IStrongDataRepository, StrongDataRepository>();
services.AddSingleton<ICalculateManager, CalculateManager>();
services.AddDbContext<ApplicationDBContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
为什么我的方法 Task Execute(IJobExecutionContext context) 没有显示生命迹象。它不叫。
它不起作用,因为我在构造函数为空的另一个实例上调用它。我需要反思并在其他实例中调用我的方法。正在工作