Azure 网络作业;计划执行以及按队列触发

Azure webjob; Scheduled execution as well triggers by queue

我想弄清楚是否有可能创建一个 Azure webjob 并将其行为安排为每 1 分钟一次,并让它能够由队列触发。我设法分别完成了这两项要求,但没有合并在一份工作中。

我知道,为了使它们在队列上触发,我需要使用 JobHost 和函数 class 以及捕获触发器的方法。这仍然会阻止调度程序并且只处理触发器

当我省略 JobHost 时...那么日程安排就完美了。我很确定我在问一个矛盾,只需要做两份单独的工作,但也许你们中的一个人面临同样的问题并设法实现它。

我不会在这里使用 Azure Scheduler/Scheduled 作业,因为您已经在使用 SDK。您可以使用新的 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);
}