【问题标题】:Is a frequently triggered CRON Azure web job triggered a second time when it runs longer than the configured frequency频繁触发的 CRON Azure Web 作业是否在运行时间超过配置的频率时再次触发
【发布时间】:2016-09-24 19:00:44
【问题描述】:

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

如果是,那么确保作业以单例方式运行且从不重复运行的正确策略是什么?

【问题讨论】:

    标签: azure cron azure-webjobs


    【解决方案1】:

    我自己还没有测试过,但是从docs我可以找到那个声明

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

    • 如果正在运行调度程序的计算实例(例如 使用 Windows 计划任务的虚拟机)进行缩放,您将 运行调度程序的多个实例。这些可以开始 任务的多个实例。
    • 如果任务运行时间超过 调度程序事件之间的时间段,调度程序可能会启动另一个 任务的实例前一个一个仍在运行。

    this 部分的文档中也提到了可能的解决方案

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

    that 部分

    默认情况下,WebJobs 随 Web 应用程序扩展。但是,您可以配置 通过设置 is_singleton 在单个实例上运行的作业 配置属性为true。单实例 WebJobs 对于 您不想扩展或同时运行的多个任务 实例,例如重新索引、数据分析和类似任务。

    【讨论】:

      猜你喜欢
      • 2018-02-06
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多