从Azure ServiceBus基础架构调用WebJob(不要连续运行WebJob)
我试图找出是否可以运行手动调度的webjob,并在消息到达servicebus队列时启动它 因此,webjob不会连续运行,而是仅在消息到达时运行。 (从而节省资源成本) 到目前为止,我尝试的是: 在Program.cs中从Azure ServiceBus基础架构调用WebJob(不要连续运行WebJob),azure,azureservicebus,azure-webjobs,Azure,Azureservicebus,Azure Webjobs,我试图找出是否可以运行手动调度的webjob,并在消息到达servicebus队列时启动它 因此,webjob不会连续运行,而是仅在消息到达时运行。 (从而节省资源成本) 到目前为止,我尝试的是: 在Program.cs中 public static async Task Main() { JobHostConfiguration config = new JobHostConfiguration(); _servicesBusConnectionStr
public static async Task Main()
{
JobHostConfiguration config = new JobHostConfiguration();
_servicesBusConnectionString = AmbientConnectionStringProvider.Instance.GetConnectionString(ConnectionStringNames.ServiceBus);
ServiceBusConfiguration serviceBusConfig = new ServiceBusConfiguration();
config.UseServiceBus(serviceBusConfig);
JobHost host = new JobHost(config);
Console.WriteLine("Starting host");
host.RunAndBlock();
}
在Functions.cs中
public static void SBQueue2SBQueue([ServiceBusTrigger("createinvoice")] string start)
{
Console.WriteLine("Receiving a message");
}
和一个run.cmd来启动进程
@echo off
dotnet CoreConsoleWebJob.dll
然而,在这个解决方案中,我从azure控制台启动手动触发的webjob。host.RunAndBlock();阻止线程,但一段时间后进程失败,因为它空闲时间太长,webjob被关闭
是否有可能由azure servicebus基础架构调用该进程?或者说,连续的网络作业总是一条出路
提前谢谢 Web作业在应用程序服务计划上运行。而且,既然你已经为应用服务计划付费,那么如果不让webjob持续运行,你就不会省下任何钱。如果你想省钱的话,可以把它作为一种工具来使用 这确实节省了钱,因为您只在函数运行时付款。触发器是开箱即用的,这很好:) 当您使用消费计划时,会根据传入事件的数量动态添加和删除Azure功能主机的实例。此无服务器计划会自动扩展,并且仅当您的函数正在运行时,才会向您收取计算资源费用
更多信息请点击此处:好的,谢谢,这就澄清了问题。