我试图弄清楚是否有可能创建一个Azure webjob,并按照每1分钟计算一次,并让它能够被队列触发。我设法将两项要求分开,但不能在一份工作中合并。Azure webjob;按计划执行以及按队列触发
我知道,为了让它们在队列上触发,我需要使用JobHost和一个Functions类来捕获触发器。仍然这阻止调度程序,只处理触发器
当我省略JobHost时...那么时间表工作完美。我很确定我在问一个矛盾,只需要做两个独立的工作,但也许你们中的一个人面临同样的问题并设法实现它。
我试图弄清楚是否有可能创建一个Azure webjob,并按照每1分钟计算一次,并让它能够被队列触发。我设法将两项要求分开,但不能在一份工作中合并。Azure webjob;按计划执行以及按队列触发
我知道,为了让它们在队列上触发,我需要使用JobHost和一个Functions类来捕获触发器。仍然这阻止调度程序,只处理触发器
当我省略JobHost时...那么时间表工作完美。我很确定我在问一个矛盾,只需要做两个独立的工作,但也许你们中的一个人面临同样的问题并设法实现它。
因为您已经在使用SDK,所以我不会在这里使用Azure Scheduler/Scheduled Jobs。您可以使用新的TimerTrigger。
我可能会做的是有两个功能。第一个功能是使用QueueTrigger
的功能,另一个功能是使用v1.1.0中发布的新的TimerTrigger
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);
}
config.UseTimers();似乎不再存在 – TWilly
它的确如此。您可能无法拉入包装或添加适当的参考。如果你不明白,可能是一个带有代码示例的新帖子? –
这是Microsoft.Azure.WebJobs.Extensions NuGet包不是核心WebJobs –