我想知道是否可以运行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
答案 0 :(得分:0)
你肯定可以在一个WebJob中同时使用这两种方法,这就是实现它的方法。如果你的TimerTrigger没有触发,我建议你确保在Program.cs文件中有config.UseTimers()。如果不调用UseTimers方法,则不会触发TimerTrigger。