Hangfire.io支持使經常性工作的cron風格的調度。但是,我應該如何指定一個具體的工作應該在特定的日期/時間運行一次,例如,工作應該在2016年6月4日16:22運行 - 並且只在特定時間點運行?如何安排一個作業,使其在特定日期遲髮型運行
類似的方式來問同一個問題可能是:cron表達式的一個子集有多大描述here,由遲髮型支持? (所描述的CRON表達式支持可以使用的「年」字段)。
另外,你認爲遲髮型是安排在首位一次性批處理作業的最佳選擇,前提是我用遲髮型作業處理?
Hangfire.io支持使經常性工作的cron風格的調度。但是,我應該如何指定一個具體的工作應該在特定的日期/時間運行一次,例如,工作應該在2016年6月4日16:22運行 - 並且只在特定時間點運行?如何安排一個作業,使其在特定日期遲髮型運行
類似的方式來問同一個問題可能是:cron表達式的一個子集有多大描述here,由遲髮型支持? (所描述的CRON表達式支持可以使用的「年」字段)。
另外,你認爲遲髮型是安排在首位一次性批處理作業的最佳選擇,前提是我用遲髮型作業處理?
的Cron表達新年不遲髮型支持。
要在特定時間點運行作業,請使用BackgroundJob
類的以下schedule
方法超載。
public static string Schedule([InstantHandle] Expression<Action> methodCall, DateTimeOffset enqueueAt);
BackgroundJob.Schedule(() => Console.Write("test"), new DateTime(2016, 6, 4, 16, 22, 0));
可以使用BackgroundJob.Schedule(表達式>包括MethodCall,DateTimeOffsetdt)方法。
BackgroundJob.Schedule(methodCall, enqueueAt);
在我的一個應用程序中,我們安排了一項工作,只在特定的日期時間運行一次。看下面的代碼
public string Schedule(Expression<Action> methodToCall, DateTimeOffset enqueueAt)
{
return BackgroundJob.Schedule(methodToCall, enqueueAt);
}
其中enqueueAt是您想要運行作業的日期時間。
當您嘗試通過調用'RecurringJob.AddOrUpdate(「test」,()=> Console.Write(「test」),「44 16 2 FEB * 2016」)來指定cron表達式中的年份時,這個例外'{「'44 16 2 FEB * 2016'不是一個有效的crontab表達式,它必須至少包含5個時間表組件(按照分鐘,小時,天,月,星期幾的順序)。」} ' – JogiKalpesh
這不是Hangfire支持的有效CRON格式。請參閱:https://en.wikipedia.org/wiki/Cron#CRON_expression –