C# Azure webjob;按队列安排的执行以及触发器

C# Azure webjob;按队列安排的执行以及触发器,c#,azure,azure-webjobs,C#,Azure,Azure Webjobs,我试图弄清楚是否有可能制作一个Azure webjob,并将其行为安排为每1分钟一次,同时也让它能够由队列触发。我设法把这两个要求分开来做,但不是合并在一个工作中 我知道,为了使它们在队列上触发,我需要使用JobHost和带有捕捉触发器的方法的Functions类。这仍然会阻止调度程序,并且只处理触发器 当我省略JobHost时。。。那么时间表就完美了。我很确定我问的是一个矛盾的问题,只需要做两个不同的工作,但也许你们中的一个会面对同样的问题并设法实现它。我不会在这里使用Azure调度程序/计划

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

我知道,为了使它们在队列上触发,我需要使用JobHost和带有捕捉触发器的方法的Functions类。这仍然会阻止调度程序,并且只处理触发器


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

我不会在这里使用Azure调度程序/计划作业,因为你们已经在使用SDK了。你可以用新的

我可能会做的是有两个函数。第一个函数是使用
QueueTrigger
的函数,另一个是使用v1.1.0中发布的新
TimerTrigger
WebJobs。您可以看到一个示例,我在这里做了类似的操作:

我有一个计时器,它轮询RSS提要并删除队列消息,但我也可以从另一个应用程序删除队列消息,或者像我在场景中所做的那样,使用WebHook

计时器触发器文档:

样本:

// 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();似乎已经不存在了,是的。您可能没有拉入包或添加正确的引用。如果你不明白,可能是一篇带有代码示例的新文章?这在Microsoft.Azure.WebJobs.Extensions NuGet包中,而不是核心WebJobs@ChrisAnderson-MSFT您知道如何检查触发消息的状态吗?基本上,我们可以用什么方法来检查触发的作业是成功完成了还是失败了?应该问一个新的SO问题,伙计。如果已启用仪表板,则应检查仪表板。如果您已切换到App Insights,则只需查看App Insights中的日志即可。