我们正在使用Azure App Services为网站运行Hangfire。我们还使用了精彩的swapping mechanism。这意味着我们无需部署到生产环境,而是部署插槽并在部署完成后交换它。
问题在于,交换插槽不断从hangfire接任务。
我想确保只有生产插槽实际上在执行hangfire作业。面临的挑战是,无论是否处于生产状态,都不会重新启动应用程序(双向)。
我可以在Azure中设置插槽粘性应用程序设置,以便确定我是否处于生产模式。只是给我一个关键问题:
如何在运行时启用和禁用我的应用以处理作业?
答案 0 :(得分:0)
尝试配置触发的WebJob,该WebJob在每次调用API或达到时间表时运行作业。另外,有2种配置设置可以停止WebJob,
• WEBJOBS_STOPPED -将此设置设置为1以禁用运行任何作业(也将停止所有当前运行的作业)。
• WEBJOBS_DISABLE_SCHEDULE -将此设置为1可关闭所有计划的触发。与WEBJOBS_STOPPED不同,WebJobs仍然可以手动调用。
有关更多详细信息,请参阅本文:https://github.com/projectkudu/kudu/wiki/WebJobs。