C# Hangfire:如何停止后台作业的处理,并在特定时间段内进行处理

C# Hangfire:如何停止后台作业的处理,并在特定时间段内进行处理,c#,hangfire,C#,Hangfire,我们有一个场景,希望作业继续在服务器中排队,但不进行处理。作业处理应在特定时间段内完成,例如上午11点至下午13点。对于周期性作业,这可以通过使用CRON表达式来完成。我们有没有办法在后台工作排队的情况下达到同样的效果 对于正常处理,我们在用户定义的队列中排队,如下所示: var state = new EnqueuedState(queue.Name); _client.Create(methodCall, state); _客户端的类型为IBackgroundJobClient您可以从另一

我们有一个场景,希望作业继续在服务器中排队,但不进行处理。作业处理应在特定时间段内完成,例如上午11点至下午13点。对于周期性作业,这可以通过使用CRON表达式来完成。我们有没有办法在后台工作排队的情况下达到同样的效果

对于正常处理,我们在用户定义的队列中排队,如下所示:

var state = new EnqueuedState(queue.Name);
_client.Create(methodCall, state);

_客户端的类型为
IBackgroundJobClient

您可以从另一个后台作业安排后台作业。因此,您可以将调度决策逻辑放入正在调度的方法中

假设您有以下方法:

void dosomethingandscheduleothere()
{
//做一些工作。。。
bool shouldContinue=//某些条件(例如,现在还不是下午13点)
如果(应该继续)
背景作业。时间表(dosomethin和Schedule),时间跨度从分钟(5)开始;
其他的
BackgroundJob.Schedule(dosomething和Schedule),TimeSpan.FromHours(22));//等到明天
}
现在您只需第一次调度此方法,该方法将在需要时继续调度自身

BackgroundJob.Schedule(dosomethingandscheduleach),TimeSpan.FromMinutes(1));

BackgroundJob.Schedule将添加到默认队列中,这是我们不需要的。对不起,刚才的问题没有提到这一点。