Quartz 作业模板
本页面旨在将文档中各处列出的多种常见建议汇总到一页,以便于轻松参考。
public class SampleJob : IJob
{
// 公开一个键,便于在DI配置中引用,例如
// 组有助于在维护操作中定位特定的作业,
// 比如暂停"group integration"中的所有作业
public static readonly JobKey Key = new JobKey("sample-job", "examples");
public async Task Execute(IJobExecutionContext context)
{
if (context.RefireCount > 10)
{
// 我们可能永远无法成功!
// 也许记录一个警告,抛出另一种类型的错误,通知值班工程师
return;
}
try
{
// 从MergedJobDataMap获取数据
var value = context.MergedJobDataMap.GetString("some-value");
// ... 执行工作
await Task.Delay(100);
}
catch (Exception ex)
{
// 您希望作业重新触发吗?
throw new JobExecutionException(msg: "", refireImmediately: true, cause: ex);
}
}
}