我试图弄清楚是否可以制作一个Azure webjob,并按照每1分钟一次的方式安排它,并让它能够被队列触发.我设法将这两个要求分开,但没有合并到一个工作中.
我知道为了使它们在队列上触发,我需要使用JobHost和一个带有捕获触发器的方法的Functions类.这仍会阻止调度程序,只处理触发器
当我省略JobHost时......那么时间表就完美了.我很确定我会提出一个矛盾,只需要做两个单独的工作,但也许你们中的一个人面对同样的事情并设法实现它.
我不会在这里使用Azure Scheduler/Scheduled Jobs,因为您已经在使用SDK.您可以使用新的TimerTrigger.
我可能做的是有两个功能.第一个功能是使用功能QueueTrigger
,另一个是使用TimerTrigger
v1.1.0中发布的新WebJobs.你可以看到我在这里做类似事情的样本:https://github.com/christopheranderson/feedbackengine#how-does-it-work
我有一个定时器来轮询RSS提要并丢弃队列消息,但我也可以从其他应用程序中删除队列消息,或者像我在我的场景中那样使用WebHook.
定时器触发器文档:https://github.com/Azure/azure-webjobs-sdk-extensions#timertrigger
样品:
// Triggers every minute (every time the clock looks like 00:xx:xx) public static void CronJob([TimerTrigger("0 * * * * *")] TimerInfo timer, [Queue("Foo")] out string message) { Console.WriteLine("Cron job fired!"); message = "Hello world!"; } public static void QueueJob([QueueTrigger("Foo")] string message) { Console.WriteLine(message); }