quartz.net - 每 30 分钟重复一次 Quarz.Net 作业……只在第一次工作
问题描述
我对 Quartz.Net 很陌生(过去我使用 Cron sintax 设置它每次运行一次)。
这次我需要有一个每 30 分钟执行一次的重复任务。
它只执行一个。
这是我到目前为止所做的
public class Core : ICore
{
private IScheduler scheduler;
private readonly IConfiguration configuration;
private static readonly TimeSpan defaultInterval = new TimeSpan(0,1,0);
public Core(IConfiguration configuration)
{
this.configuration = configuration;
}
public async Task StartAsync()
{
var interval = configuration.GetValue("interval", defaultInterval);
// Grab the Scheduler instance from the Factory
NameValueCollection props = new NameValueCollection
{
{ "quartz.serializer.type", "binary" }
};
StdSchedulerFactory factory = new StdSchedulerFactory(props);
this.scheduler = await factory.GetScheduler();
this.scheduler.JobFactory =new SimpleInjectorJobFactory(ContainerWrapper.Container, Assembly.GetExecutingAssembly());
IJobDetail job = JobBuilder.Create<RinnovoJob>()
.WithIdentity("RinnovoJob", "sender").StoreDurably(true)
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity($"trigger_RinnovoJob", "sender")
.StartNow().WithSimpleSchedule(x=>x.WithInterval(interval))
.Build();
// Tell quartz to schedule the job using our trigger
await this.scheduler.ScheduleJob(job, trigger);
// and start it off
await this.scheduler.Start();
}
public void Dispose()
{
}
}
这就是工作
public class RinnovoJob:IJob
{
[omiss]
public RinnovoJob([omiss])
{
[omiss]
}
public Task Execute(IJobExecutionContext context)
{
log.Info("Passed");
return Task.CompletedTask;
}
}
它只写一次“通过”。我已经阅读了文档以将 Durability 设置为 true,因为我已经使用过,StoreDurably(true)
但它似乎不起作用。
有什么建议吗?另一个问题,如果有一个相同类型的作业正在运行,有没有办法可以避免执行作业?
提前致谢
解决方案
我已经成功了...我错过了.RepeatForever()
电话
这是工作代码
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity($"trigger_RinnovoJob", "sender")
.StartNow().WithSimpleSchedule(x=>x.WithInterval(interval).RepeatForever())
.Build();
希望这可以帮助其他在类似情况下浪费时间的人
推荐阅读
- c# - 如何在不使用 Report.SetParameters() 的情况下将参数从 VB.NET 传递到 SSRS 报告
- nuxt.js - Nuxt 自定义加载指示器 - 如何显示资产文件夹中的图像
- java - getTime() 只返回分钟和秒
- batch-file - 任务计划程序 .bat 文件运行提示
- python - 解析 args kwargs 的任意组合并默认为签名密钥
- python - 你如何在 PySide 中使用 layout.adoptLayout(layout)?
- typescript - 为什么我必须在构造函数中使用 NaN 而不能使用 null?打字稿
- azure-data-factory - 无法在 Azure 数据工厂中添加 Dynamics 365 作为源和数据节作为目标,数据集被禁用无法选择它们
- python - 如何检测网络中的以太网设备 (UDP)
- excel - VBA:如何有条件地为 ComboBox 着色?