基于计时器和服务总线上的新消息启动Azure Web作业?

时间:2017-11-14 02:11:38

标签: c# azure azure-webjobs azureservicebus

我想知道是否可以运行Web作业,由Azure Service Bus(主题)上的新消息或定时器发生时触发。我知道我可以创建两个单独的Web作业,但我希望将两者结合起来,因为99%的逻辑将是相同的。

在Service Bus中准备好消息时如何启动Web作业的示例:

[Singleton]
        public  void ProcessQueueMessage([ServiceBusTrigger("%TopicName%", "%SubscriptionName%")] BrokeredMessage message, TextWriter log)
        {
// Processing code here
}

关于如何基于计时器启动Web作业的示例:

public static void ProcessByTimer([TimerTrigger("00:00:30", RunOnStartup = true)] TimerInfo timerInfo, TextWriter log)
        {
            // Processing code here
        }

注意,我试过让web作业同时拥有这两种方法,但它似乎从未进入过计时器方法,只有服务总线触发方法。

亲切的问候,

的Stefan

1 个答案:

答案 0 :(得分:0)

你肯定可以在一个WebJob中同时使用这两种方法,这就是实现它的方法。如果你的TimerTrigger没有触发,我建议你确保在Program.cs文件中有config.UseTimers()。如果不调用UseTimers方法,则不会触发TimerTrigger。