Azure网络作业;计划执行也由队列触发

本文关键字:队列 执行 网络 作业 计划 Azure | 更新日期: 2023-09-27 18:25:44

我试图弄清楚是否有可能制作一个Azure网络作业,并将其安排为每1分钟一次,同时让它能够由队列触发。我设法把这两个要求分开来做,但没有合并在一份工作中。

我知道,为了使它们在队列上触发,我需要使用JobHost和一个函数类,该类具有捕获触发器的方法。尽管如此,这还是阻止了调度器,并且只处理触发

当我省略JobHost时。。。那么这个时间表就完美了。我很确定我问的是一个矛盾,只需要做两份不同的工作,但也许你们中的一个人面临着同样的问题,并设法实现了它。

Azure网络作业;计划执行也由队列触发

我不会在这里使用Azure Scheduler/Scheduled Jobs,因为您已经在使用SDK了。您可以使用新的TimerTrigger。

我可能会做的是有两个函数。第一个函数是使用QueueTrigger的函数,另一个函数使用v1.0中发布的新TimerTrigger WebJobs。你可以在这里看到我做类似事情的示例:https://github.com/christopheranderson/feedbackengine#how-能用吗

在那里,我有一个计时器,它可以轮询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);
}