我已经创建了一个使用QueueInput触发器的简单Azure WebJob。它的部署没有任何问题,我已经通过管理门户对其进行了安排,以便它可以“连续运行”。
初始测试似乎很好,作业在将任何内容放入队列后不久就会触发。
一次偶然的机会,我把它放在队列中的前一天。这一次,作业在几分钟内没有触发,所以我登录到门户查看调用日志-它显示作业刚刚被触发。
这似乎太巧合了,所以我在把一些东西放到队列中之前,又把它放在了另一天。再说一次,作业没有触发。我把它放了一夜,到了早上,它仍然没有触发。
当我这次登录到管理门户时,我注意到该作业在WebJobs页面上被标记为“Aborted”。在状态变为“Running”之前,这只持续了大约10秒。然后,正如预期的那样,作业立即从前一天晚上放在队列中的内容触发。
由于这是一个alpha版本,所以我预计会出现一些小故障。只是想知道其他人是否也有过类似的经历。
发布于 2014-02-11 00:54:21
对于WebJobs SDK,您的作业必须处于运行状态才能侦听触发器(新队列消息、新blob等)。Azure网站免费层有配额,会让你的工作进入睡眠状态,这意味着它不再侦听触发器。使用该网站可能会使其恢复活力,并再次开始侦听触发器。
如果托管作业没有运行,SDK仪表板将在函数旁边显示警告图标(它通过心跳检测到这一点)。
发布于 2014-04-09 04:58:49
确保您的网站配置为启用了“始终在线”设置。
如果您的站点包含连续运行的作业,则如果禁用此设置,这些作业可能无法可靠地执行。
http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/
默认情况下,如果网站空闲了一段时间,则会将其卸载。这可以让系统节省资源。如果需要始终加载站点,则可以在标准模式下为该站点启用“始终打开”设置。由于如果禁用Always On,则连续web作业可能无法可靠地运行,因此当站点上有连续web作业运行时,应启用Always On。
https://stackoverflow.com/questions/21572892
复制相似问题