是否可以使用顺序执行来执行 Azure 函数计时器触发器?

Is it possible to execute Azure function Timer trigger with Sequential Execution?

我想通过顺序执行来执行 Azure 计时器触发器。

假设我有一个间隔为 5 分钟的 C# 定时器触发器。但功能需要时间来执行是 8 分钟。这意味着在第一次调用完成之前,第二个触发器启动另一个线程。我怎样才能避免这种情况?

您可以设置时间触发函数将消息放入队列,并使用另一个函数(队列触发)运行 处理队列中的每条消息。可以限制从队列中获取的消息数量,请在此处查看: 但是,每 5 分钟触发一次 8 分钟处理听起来是个严重的问题。如果是平均处理时间,请仔细考虑。

默认行为是在任何给定时刻只有一个 Azure 函数实例 运行ning。引用自 wiki -

If your function execution takes longer than the timer interval, another execution won't be triggered until after the current invocation completes. The next execution is scheduled after the current execution completes.

这里是测试函数的日志输出,它被安排为每 30 秒 运行 但它本身需要 40 秒来执行。

C# 定时器触发器函数触发时间:2017 年 8 月 4 日 2:21:50 下午。 C# 定时器触发器函数执行时间:2017 年 8 月 4 日 2:22:30 下午。执行次数 1

C# 定时器触发函数触发时间:2017 年 8 月 4 日 2:22:30 下午。 C# 定时器触发器函数执行时间:2017 年 8 月 4 日 2:23:10 下午。执行次数 2

C# 定时器触发器函数触发时间:2017 年 8 月 4 日 2:23:10 下午。 C# 定时器触发器函数执行时间:2017 年 8 月 4 日 2:23:50 下午。执行次数 3