我遇到了类似的情况 Azure Function timer is running twice and when I log onto the Azure portal 但是我到目前为止,那里的解决方案对我来说还行不通。
我的函数(用Node编写)在计时器上运行(每15分钟一次)。在Application Insights和Azure门户监视器日志中,按预期(大概是由于采样),我每15分钟看到一次调用。但是,输出发生了两次(我正在将记录写入Cosmos集合)。当我查看功能的实时日志时(在门户中,导航至功能代码并从屏幕底部拉出日志),我可以看到它运行了两次,非常接近。下面的示例日志。间隔重叠,所以我不认为这是CRON的问题(但我不是CRON专家)。
我确实考虑过runOnStartup。我不确定是否默认为false,所以将其设置为false并重新启动。重启后同样的问题(我仍然对此表示怀疑,因为在一分钟计时器上运行的类似功能的应用程序按预期运行)。
我也尝试过从门户手动运行该功能。当我这样做时,它只会运行一次。
提供Azure函数github wiki上请求的信息:
从近距离开始提供两个-
地区:美国东部
调用ID:4c6f4e7a-1e9d-4278-b3c6-0a2b5310199c
示例日志显示了两个重叠的调用(为简单起见,实际的日志文本进行了略微编辑):
2019-04-18T17:45:00.004 [Information]执行'Functions.unassignDriverPermits'(原因='计时器于2019-04-18T17:45:00.0044464 + 00:00触发,Id = 4e142315-60e3-420d -b71a-9990683ba5aa)
2019-04-18T17:45:00.013 [Information]执行'Functions.unassignDriverPermits'(原因='计时器于2019-04-18T17:45:00.0131739 + 00:00发射,ID = 4c6f4e7a-1e9d-4278 -b3c6-0a2b5310199c)
2019-04-18T17:45:33.577 [信息]记录一些事情
2019-04-18T17:45:33.577 [信息]记录有关id 0的事情
2019-04-18T17:45:33.586 [Information]执行了'Functions.unassignDriverPermits'(成功,Id = 4e142315-60e3-420d-b71a-9990683ba5aa)
2019-04-18T17:45:33.281 [信息]记录一些事情
2019-04-18T17:45:33.282 [信息]记录有关id 0的事情
2019-04-18T17:45:33.294 [Information]执行了'Functions.unassignDriverPermits'(成功,Id = 4c6f4e7a-1e9d-4278-b3c6-0a2b5310199c)
答案 0 :(得分:3)
我曾经有一个类似的问题,该问题每天在12:00运行。 RunOnStartup设置为true。该功能正在按消耗计划运行,并且仅每天运行一次,该功能会解除分配并在触发时重新启动(冷启动)。也许这就是两次调用的原因:一次是触发器,一次是因为它已启动)。通过将RunOnStartup设置为false可以解决此问题。
确保RunOnStartup设置为false。
答案 1 :(得分:1)
两个调用ID似乎来自两个不同的应用程序(可能是prod / dev吗?) 您是否可以根据应用名称过滤日志,以验证同一触发器是否触发两次?