TimerTrigger计划和代码执行时间

时间:2016-01-08 21:52:15

标签: azure-webjobs azure-webjobssdk

如果一个函数每5分钟被一个TimerTigger调用会发生什么,并且由于某些原因,代码需要5分钟以上才能完成?

  • 这是否会导致我的函数同时运行两次?
  • 或者在触发的代码执行完成后间隔是否开始?

我自己在文档中找不到答案。 我必须确保我的函数始终以单例形式运行。

谢谢, 亚历

1 个答案:

答案 0 :(得分:2)

如果函数执行时间超过计时器间隔,则在当前调用完成之前,不会触发另一次执行。执行完成后, 计划下一次执行。您可以在代码here中看到这一点。您可以通过尝试一个简单的本地示例来证明这一点 - 创建一个每5秒运行一次的函数,然后在那里睡一会儿。在第一次完成之前,你不会看到另一个功能开始。

就运行单例而言,上面显示在相同实例(VM)的指定时间内只运行一次函数调用。 SDK进一步确保没有其他功能在扩展实例中运行。您可以阅读有关here的更多信息。要查看此操作,您可以通过在本地启动控制台应用程序的两个实例进行模拟 - 一个将运行另一个不执行的计划。但是,如果你杀了运行时间表的那个,那么另一个人会在很短的时间(一分钟之内)内接收它。