2016-02-26 55 views
1

我正在使用带有“TimerTrigger”属性的Azure WebJob函数,以便在某个特定时间每天早上排队某些用户的电子邮件。根据阅读,我知道这应该表现为一个Singleton,并且只在所有横向扩展实例中触发一次。但是,用户报告收到两封电子邮件,并且日志记录显示该功能正在被调用两次。为什么是这样?为什么AzureWebJob中的TimerTrigger被触发两次?

下面是相关功能:

public static void EnqueueAllSummaries([TimerTrigger("0 15 8 * * *")] TimerInfo timer, TextWriter logger) 

记录显示这是在2016年2月26日11时38分41秒UTC和2016年2月26日11点39分五十〇秒UTC触发。两次都成功完成,报告12和13秒的运行时间。

这是一个单一的实例,虽然我确实启用了一个部署槽。但是,部署插槽没有启用此WebJob,并且在那里的日志证实这不是从此部署插槽触发的。 (以上时间来自生产实例的“WebJobs”选项卡)

为什么会触发两次?我的cron-fu关闭了,还是我误解了Azure WebJobs的某些行为?

回答

3

使用插槽时,TimerTrigger管理日程安排跟踪的方式存在一个错误(请参阅issue here)。它已被修复,并且有一个预发布版本,修复程序已被其他人确认为他们解决了问题。

请确认新版本为您解决了问题,并随时在公共回购问题上添加更多问题/评论。上面链接的问题提供了有关如何从MyGet中获取预发布版本的详细信息。