TimerTrigger 调度和代码执行时间
TimerTrigger Schedules and code execution time
如果 TimerTigger 每 5 分钟调用一次函数并且由于某些原因代码需要超过 5 分钟才能完成,会发生什么情况?
- 这会导致我的函数同时 运行 两次吗?
- 还是在触发代码执行完成时开始间隔?
我自己在文档中找不到答案。
我必须确保我的函数 运行 始终是单例。
谢谢,
亚历克斯
如果您的函数执行时间超过计时器间隔,则在当前调用完成之前不会触发另一次执行。下一次执行安排在执行完成后。您可以在代码 here 中看到这一点。您可以通过尝试一个简单的本地示例来向自己证明这一点——创建一个每 5 秒 运行s 的函数,然后在其中休眠一分钟。在第一个函数完成之前,您不会看到另一个函数开始。
就 运行ning 单例而言,以上显示在给定时间在 同一实例 (VM)[=19] 上只有一个函数调用 运行s =]. SDK 进一步确保没有其他函数 运行 宁 跨横向扩展实例 。您可以阅读更多相关内容 here。要实际查看此操作,您可以通过在本地启动控制台应用程序的两个实例来进行模拟 - 一个将 运行 调度,另一个则不会。但是,如果您在时间表中杀死一个 运行,另一个将在短时间(一分钟内)后恢复。
如果 TimerTigger 每 5 分钟调用一次函数并且由于某些原因代码需要超过 5 分钟才能完成,会发生什么情况?
- 这会导致我的函数同时 运行 两次吗?
- 还是在触发代码执行完成时开始间隔?
我自己在文档中找不到答案。 我必须确保我的函数 运行 始终是单例。
谢谢, 亚历克斯
如果您的函数执行时间超过计时器间隔,则在当前调用完成之前不会触发另一次执行。下一次执行安排在执行完成后。您可以在代码 here 中看到这一点。您可以通过尝试一个简单的本地示例来向自己证明这一点——创建一个每 5 秒 运行s 的函数,然后在其中休眠一分钟。在第一个函数完成之前,您不会看到另一个函数开始。
就 运行ning 单例而言,以上显示在给定时间在 同一实例 (VM)[=19] 上只有一个函数调用 运行s =]. SDK 进一步确保没有其他函数 运行 宁 跨横向扩展实例 。您可以阅读更多相关内容 here。要实际查看此操作,您可以通过在本地启动控制台应用程序的两个实例来进行模拟 - 一个将 运行 调度,另一个则不会。但是,如果您在时间表中杀死一个 运行,另一个将在短时间(一分钟内)后恢复。