仅根据环境(交换插槽)在服务器上提取Hangfire任务

时间:2018-08-20 04:22:18

标签: .net azure azure-web-sites hangfire

我们正在使用Azure App Services为网站运行Hangfire。我们还使用了精彩的swapping mechanism。这意味着我们无需部署到生产环境,而是部署插槽并在部署完成后交换它。

问题在于,交换插槽不断从hangfire接任务。

我想确保只有生产插槽实际上在执行hangfire作业。面临的挑战是,无论是否处于生产状态,都不会重新启动应用程序(双向)。

我可以在Azure中设置插槽粘性应用程序设置,以便确定我是否处于生产模式。只是给我一个关键问题:

如何在运行时启用和禁用我的应用以处理作业?

1 个答案:

答案 0 :(得分:0)

尝试配置触发的WebJob,该WebJob在每次调用API或达到时间表时运行作业。另外,有2种配置设置可以停止WebJob,

WEBJOBS_STOPPED -将此设置设置为1以禁用运行任何作业(也将停止所有当前运行的作业)。

WEBJOBS_DISABLE_SCHEDULE -将此设置为1可关闭所有计划的触发。与WEBJOBS_STOPPED不同,WebJobs仍然可以手动调用。

有关更多详细信息,请参阅本文:https://github.com/projectkudu/kudu/wiki/WebJobs