0

Скажите, что у вас есть метод CreateOrder внутри проекта ApiApp.Azure ApiApp - слушать ServiceBus msg

Теперь мне нужно также вызвать CreateOrder, когда я получаю CreateOrderMessage из очереди ServiceBus.

Я понимаю, что это можно легко сделать с помощью Azure Functions с триггером очереди. Но это добавляет больше сложностей (вводит другие концепции, потребует новый репозиторий, документы и т. Д.). Таким образом, мой вопрос просто:

Могу ли я слушать сообщения о очереди внутри проекта WebApi? (Я знаю, раскручивается новый поток включает в себя некоторые проблемы)

Спасибо за любые предложения

Larsi

+0

вы можете взглянуть на hangfire. Он предназначен для запуска фоновых задач внутри приложения asp.net. http://hangfire.io/. Я думаю, они поддерживают Azure Servicebus. – Thomas

ответ

0

Технически, да, вы можете. Как вы уже упоминали, это не рекомендуется, в основном из-за возможных осложнений в ручном управлении потоками, жизненного цикла вашего приложения WebApi и т. Д. Идеальная обработка сообщений должна выполняться в веб-задании, роли, функции, сервисе и т. Д. .

1

мы также могли бы легко сделать с помощью лазурной функции, мы можем импортировать WebJob SDK в лазурную функцию с помощью #r Microsoft.Azure.WebJobs, подробнее подробнее см azure functions C# developer reference. Мы можем получить больше информации со ссылкой how to create azure function.

Мы также можем это сделать через WebJob, мы также можем легко deploy WebJob with VS. Ниже приведен демонстрационный код:

public static void ProcessQueueMessage([ServiceBusTrigger("inputqueue")] string message, 
     TextWriter logger) 

    { 

     // Todo 

    } 

Более подробную информацию можно найти в How to use Azure Service Bus with the WebJobs SDK.

Смежные вопросы