频繁触发的CRON Azure web作业是否在其运行时间超过配置的频率时第二次触发

频繁触发的CRON Azure web作业是否在其运行时间超过配置的频率时第二次触发,azure,cron,azure-webjobs,Azure,Cron,Azure Webjobs,假设每五分钟通过CRON触发一次作业。出于某些原因,在10:00执行一次会持续更长的时间,例如8分钟。第二个实例是否在10:05触发 如果是的话,有什么正确的策略来确保作业以单例方式运行,而不是两次运行?我自己还没有测试过它,但是我可以从 如果使用必须作为单个实例运行的计划驱动任务, 注意以下几点: 如果运行调度程序的计算实例(例如 使用Windows计划任务的虚拟机)已扩展,您将 运行多个调度程序实例。这些可能会开始 任务的多个实例 如果任务运行时间长于 在调度程序事件之间的一段时间内,调度

假设每五分钟通过CRON触发一次作业。出于某些原因,在10:00执行一次会持续更长的时间,例如8分钟。第二个实例是否在10:05触发


如果是的话,有什么正确的策略来确保作业以单例方式运行,而不是两次运行?

我自己还没有测试过它,但是我可以从

如果使用必须作为单个实例运行的计划驱动任务, 注意以下几点:

  • 如果运行调度程序的计算实例(例如 使用Windows计划任务的虚拟机)已扩展,您将 运行多个调度程序实例。这些可能会开始 任务的多个实例
  • 如果任务运行时间长于 在调度程序事件之间的一段时间内,调度程序可能会启动另一个 任务的实例,而上一个实例仍在运行。
第节中的文档中也提到了可能的解决方案

默认情况下,WebJobs通过其关联的Azure Web应用程序进行扩展 例如。但是,如果希望WebJob仅作为单个 实例,您可以创建一个包含JSON的
Settings.job
文件 数据
{“is_singleton”:true}
。这将强制Azure只运行一个 WebJob的实例,即使有多个 关联的web应用程序。对于计划的作业,这可能是一种有用的技术 必须仅作为单个实例运行

和部分

默认情况下,WebJobs随web应用程序进行缩放。但是,您可以配置 要在单个实例上运行的作业,请将
设置为\u singleton
将配置属性设置为
true
。单实例WebJobs对于 不希望同时扩展或运行的任务 实例,例如重新索引、数据分析和类似任务