Hangfire.io支持对定期作业进行类似CRON的计划。但是,如何指定特定作业应在特定日期/时间运行一次,例如一份工作应该在2016年6月4日16:22运行 - 并且只在那个特定时间点运行?
提出相同问题的类似方式可能是:Hangfire支持的here所描述的CRON表达式的子集有多大? (所描述的CRON表达式支持可以使用的“年份”字段。)
另外,如果我使用Hangfire进行作业处理,您认为Hangfire是首先安排一次性批处理作业的最佳选择吗?
答案 0 :(得分:0)
Hangfire不支持使用Year的Cron表达式。
要在特定时间点运行作业,请使用schedule
类中的BackgroundJob
方法重载。
public static string Schedule([InstantHandle] Expression<Action> methodCall, DateTimeOffset enqueueAt);
BackgroundJob.Schedule(() => Console.Write("test"), new DateTime(2016, 6, 4, 16, 22, 0));
答案 1 :(得分:0)
您可以使用BackgroundJob.Schedule(Expression&gt; methodCall,DateTimeOffsetdt)方法。
BackgroundJob.Schedule(methodCall, enqueueAt);
答案 2 :(得分:0)
在我的一个应用程序中,我们仅在特定日期时间内安排一次作业。请查看以下代码
public string Schedule(Expression<Action> methodToCall, DateTimeOffset enqueueAt)
{
return BackgroundJob.Schedule(methodToCall, enqueueAt);
}
enqueueAt是您要运行作业的日期时间。