2017-02-28 57 views
2

如果我有一个每5分钟运行一次定时器触发的Azure功能,如果一个运行需要5分钟以上,会发生什么情况?Azure功能定时器触发横向扩展

无论当前是否执行任何触发器,下一个定时器触发器是否会启动?

我想问的原因:我需要确保一次只能运行一个Azure函数(是的,我知道这种做法违背了函数的概念)。如果一次运行需要5分钟(应该大部分时间)需要<,那么在接下来的5分钟时间内启动下一个。如果没有完成,请不要启动。

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

谢谢!

+0

请注意:如果您使用的是消费计划,Azure功能将不允许运行超过5分钟,并且会在此时被杀死。 – Mikhail

+0

@Mikhail有趣。对此有何参考? – RPM1984

+0

现在找不到文档参考,但例如看到这个github问题https://github.com/Azure/Azure-Functions/issues/75 – Mikhail

回答

6

正如TimerTrigger wiki page描述:

如果你的函数执行比定时器间隔时间较长,另一个执行不会被触发,直至当前调用完成后。下一次执行将在当前执行完成后计划。

所以你应该得到你正在寻找的行为 - 只有在任何给定时间运行的单个函数调用。

+0

完美,谢谢! – RPM1984