【问题标题】:Azure Functions Timer Trigger Scale-outAzure Functions 计时器触发器横向扩展
【发布时间】:2017-07-20 02:13:56
【问题描述】:

如果我有一个每 5 分钟在计时器触发器上运行的 Azure 函数,如果一个 运行 需要超过 5 分钟会发生什么?

无论当前执行的触发器如何,下一个计时器触发器都会启动吗?

我问的原因:我需要确保一次只运行 1 个 Azure 函数(是的,我知道这种做法违背了函数的概念)。如果一次运行时间小于 5 分钟(大部分时间应该如此),那很好 - 在接下来的 5 分钟窗口开始下一次运行。如果没有完成,请不要开始。

我更喜欢使用 Azure Functions,但在这种情况下 - 我是否应该不打扰并简单地使用持续运行的 Azure WebJob 来代替?

谢谢!

【问题讨论】:

  • 请注意:如果你在消费计划中,Azure Function 的运行时间不能超过 5 分钟,它将被杀死。
  • @Mikhail 很有趣。有什么参考吗?
  • 现在找不到文档参考,但是例如看到这个github问题github.com/Azure/Azure-Functions/issues/75
  • 谢谢米哈伊尔。我会相应地调整我的计时器时间表。
  • 这个讨论已经很老了,但是,这里是 diff 计划超时的文档:docs.microsoft.com/en-us/azure/azure-functions/functions-scale 你可以看到消耗计划的默认值为 5 分钟。

标签: azure-functions


【解决方案1】:

如 TimerTrigger wiki page 中所述:

如果您的函数执行时间超过计时器间隔,则在当前调用完成之前不会触发另一个执行。在当前执行完成后安排下一次执行。

所以您应该已经获得了您正在寻找的行为 - 在任何给定时间只运行一个函数调用。

【讨论】:

    猜你喜欢
    • 2021-03-02
    • 1970-01-01
    • 2022-01-19
    • 2018-10-26
    • 2021-08-23
    • 2021-05-08
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多