Сервисная шина Azure, несколько клиентов QueueClients - PullRequest
0 голосов
/ 01 апреля 2019

Каков наилучший способ создания нескольких клиентов очереди для прослушивания разных очередей служебной шины? Существует класс MessagingFactory, однако Microsoft.ServiceBus.Messaging, по-видимому, больше не доступен как пакет nuget (консольное приложение .net).

Рассматривая QueueClient как статический объект, каков будет рекомендуемый шаблон для создания нескольких клиентов очереди из одноэтапного хост-процесса?

Ценю обратную связь.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Может заставить его работать, но не может использовать внедрение зависимостей.Любые предложения по улучшению этой реализации будут высоко оценены.

Startup.cs

// Службы размещенных служб.AddSingleton ();

ServiceBusListener.cs

открытый класс ServiceBusListener: BackgroundService, IServiceBusListener {

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        Console.WriteLine($"ServiceBusListener is starting.");

        Dictionary<string, QueueClient> queueClients = new Dictionary<string, QueueClient>();

        foreach (var queue in _svcBusSettings.Queues)
        {
            var svcBusQueueClient = new ServiceBusQueueClient(queue.Value, queue.Key);
            queueClients.Add(queue.Key, svcBusQueueClient.QueueClient);
        }


    }


}

ServiceBusQueueClient.cs

открытый класс ServiceBusQueueClient: IServiceBusQueueClient {private IQueueClient _queueClient;

    public QueueClient QueueClient
    {
        get { return _queueClient as QueueClient; }
    }

    public ServiceBusQueueClient(string serviceBusConnection, string queueName)
    {
        _queueClient = new QueueClient(serviceBusConnection, queueName);
        RegisterOnMessageHandlerAndReceiveMessages();
    }

}

0 голосов
/ 01 апреля 2019

Для основных приложений .net вы можете использовать Microsoft.Azure.ServiceBus вместо nuget Microsoft.ServiceBus.Messaging.Поскольку это сборка поверх стандарта .net, его можно использовать как в каркасных, так и в основных приложениях.Методы и классы, аналогичные Microsoft.ServiceBus.Messaging, доступны в этом разделе.Проверьте здесь для образцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...