Вызвать WebJob из инфраструктуры Azure ServiceBus (не запускать WebJob постоянно) - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь выяснить, можно ли запустить запланированное вручную веб-задание и запустить ли его при поступлении сообщения в очередь служебной шины.

Таким образом, веб-работа не будет выполняться непрерывно, а только при получении сообщения. (таким образом экономя затраты ресурсов)

Что я пробовал до сих пор:

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? Или это непрерывный веб-джоб всегда путь.

Заранее спасибо!

1 Ответ

0 голосов
/ 03 сентября 2018

Веб-работа выполняется в плане обслуживания приложений. А поскольку вы уже платите за план обслуживания приложений, вы не экономите деньги, не выполняя веб-работу непрерывно. Если вы хотите сэкономить, обратите внимание на выполнение этой функции в виде Azure Function в Плане потребления .

То, что экономит денег, так как вы платите только при запуске функции. И триггеры работают из коробки, что приятно:)

При использовании плана потребления экземпляры узла функций Azure динамически добавляются и удаляются в зависимости от количества входящих событий. Этот безсерверный план автоматически масштабируется, и вы платите за вычислительные ресурсы, только когда выполняются ваши функции.

Дополнительная информация здесь: Привязки служебной шины Azure для функций Azure

...