Я пытаюсь выяснить, можно ли запустить запланированное вручную веб-задание и запустить ли его при поступлении сообщения в очередь служебной шины.
Таким образом, веб-работа не будет выполняться непрерывно, а только при получении сообщения.
(таким образом экономя затраты ресурсов)
Что я пробовал до сих пор:
In Program.cs
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();
}
In Functions.cs
public static void SBQueue2SBQueue([ServiceBusTrigger("createinvoice")] string start)
{
Console.WriteLine("Receiving a message");
}
И run.cmd для запуска процесса
@echo off
dotnet CoreConsoleWebJob.dll
Однако в этом решении я запускаю веб-задание, запускаемое вручную, с консоли Azure. Host.RunAndBlock (); блокирует поток, но через некоторое время процесс завершается сбоем, так как он слишком долго простаивает и веб-задание закрыто.
Существует ли вероятность, что этот процесс вызывается инфраструктурой Azure Servicebus? Или это непрерывный веб-джоб всегда путь.
Заранее спасибо!