我有一个网络作业,它应该是触发的网络作业。我已将其部署到 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/