当azure服务总线中有消息时,Azure触发的webjob不会触发

标签 azure azure-webjobs azureservicebus

我有一个网络作业,它应该是触发的网络作业。我已将其部署到 azure Fine,并将其列为触发的网络作业。然而,当我将东西添加到 azure 服务总线时,它具有其功能。当我从 UI 触发它时,它就会工作并响应我的消息。

我的主机是这样配置的

var config = new JobHostConfiguration
        {
            JobActivator = new MyActivator(container)
        };
        config.UseServiceBus();
        var host = new JobHost(config);
        host.RunAndBlock();

我的函数看起来像这样

public  void ProcessQueueMessage([ServiceBusTrigger("recipetest")] ProductName message, TextWriter log)
    {
        //code
    }

我已经找了一段时间了,但所有谷歌搜索都给了我带功能触发器的连续网络工作。谁能告诉我如何让网络作业唤醒并处理消息。我发现大多数其他答案都谈到始终开启,但触发的作业应该在不始终开启的情况下工作。

最佳答案

在我看来,连续webJob和触发式webjob的区别如下:

连续 webJob:始终在 Web 应用程序中运行后端 exe。

在 webjob SDK ServiceBusTrigger 场景中,即使您的各个函数被“触发”,WebJob 也会暂时连续运行(即您的 exe 保持运行并执行其自己的内部触发)。

触发的网络作业:按计划或手动触发。

注意:Webjobs都是由Web应用程序的进程运行的,如果Web应用程序空闲一段时间就会被卸载。这可以让系统节省资源。

因此,连续和触发(计划的 CRON)网络作业都需要“始终开启”。

关于当azure服务总线中有消息时,Azure触发的webjob不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898047/

相关文章:

rest - 如何通过 Azure 移动服务使用服务器端排序和分页

python - 使用 opencensus-python 时从 Application Insights 中删除 customDimensions 项目

azure - 如何在 azure bicep 部署模板中获取 Linux 应用服务的主机 url

azure - 如何在仪表板中将旧的 azure webjob 功能合并在一起?

azure - 逻辑应用程序未接收消息

regex - Azure Verizon 使用什么正则表达式引擎?

azure - 当计划的 WebJob 长时间运行时会发生什么

python - 监听来自 python 的 Azure 队列消息以进行 Web 作业

azure - Send 调用完成后出现故障/异常,Azure 服务总线是否会继续重试?

Azure 服务总线 - 结合 SQL 和相关过滤器