Azure WebJobs Madness - ServiceBusTrigger未触发

时间:2018-01-19 09:40:10

标签: azure azure-webjobs azure-webjobssdk azure-webjobs-continuous azure-webjobs-triggered

在我的一个WebJobs中发生了一个奇怪的事情,我找不到什么问题。

此WebJob配置为在特定服务总线队列上收到消息后立即使用ServiceBusTrigger。此函数的执行时间为分钟/小时,因此我按如下方式配置了JobHostConfiguration:

config.UseServiceBus(new ServiceBusConfiguration()
{
     MessageOptions = new Microsoft.ServiceBus.Messaging.OnMessageOptions()
     {
          MaxConcurrentCalls = 3,
          AutoRenewTimeout = new TimeSpan(4, 0, 0),
          AutoComplete = true                    
     }
});

如果我理解正确,这将授予每个功能:

  1. 每个实例并行执行最多三次(每条消息一个)
  2. 信息上的锁定最多保留4个小时。如果处理时间少于4小时,这将避免消息被重新排队。
  3. 一旦函数完成,消息就会从队列中删除(即使它应该是默认行为)。
  4. 这些消息包含必须为不同用户执行的作业。为了在不同用户的parallalel中执行,但作为每个用户的单例,在函数内部我采用租约(不同于每个用户)并保持60秒,使用任务每30秒更新一次。 / p>

    这似乎有效:对不同的客户并行执行作业,同一用户的相同请求被序列化。

    现在,有时会发生WebJob停止触发该功能,即使队列中充满了消息。我不明白为什么。

    一旦我重新启动webjob,一切都像以前一样运行。 关于为什么会发生这种情况的任何想法?

    我注意到,即使webjobs正在运行,应用程序也被(错误地)停止了。也许这就是问题?

0 个答案:

没有答案