如何每90秒触发一次Azure计时器功能?

时间:2017-07-18 11:42:56

标签: javascript azure timer azure-functions


有一些教程将向您展示如何使用Azure计时器herehere(在第二个中您应该看到限制)
但我需要每隔90秒(1分30秒)触发一次 我用这些方法但似乎不起作用:

*/30 */1 * * * * //will trigger every 30 seconds
*/90 * * * * * //will trigger every 60 seconds
30 * * * * * //will trigger each minute start at second 30

然后我怎么能每90秒触发一次?

2 个答案:

答案 0 :(得分:1)

您可能需要创建两个具有相同主体但具有不同cron表达式的函数:

0 0/3 * * * *  // 00:00 03:00 06:00...
30 1/3 * * * * // 01:30 04:30 07:30...

每个功能每3分钟运行一次,间隔90秒。通过将主体提取到辅助函数中然后从两个函数中调用它来重用主体可能是有意义的。

另一种选择是创建一个每30秒触发一次的函数,检查当前时间是90秒的正确倍数,否则立即返回。

答案 1 :(得分:0)

这不可能使用CRON(如Mikhail提到的那样)。但是,不建议高度复制组件之间的逻辑(在这种情况下为不同的函数)。它实际上是函数与已知bad-smell的并行。一般来说,对于任何领域,这都不是理想的解决方案(我想原因很清楚)。

我建议使用一个包含所有逻辑的函数,这些逻辑将由其他函数触发,这些逻辑将保持独立于实际程序逻辑的最小逻辑。 您可以选择最适合您的方式,这可以通过HTTP触发器,队列或其他方式。 然后,2(或任何数字实际上)函数将使用其触发器触发此函数。

例如,您可以使用HTTP触发器创建一个函数,该函数包含所有逻辑。 然后,创建2个函数,每个函数使用不同的CRON表达式触发。两者都只是使用HTTP调用来调用触发'逻辑'函数。

对于90秒的特定需要,您可以使用已经建议的这些CRON表达式(每个“触发器”功能一个)

0 0/3 * * * * 
30 1/3 * * * *
相关问题