Очистить очередь EasyNetQ RPC

У меня есть вопрос, я реализовал простой RPC (запрос/ответ) с EasyNetQ, и это работает, но мне интересно, после того, как я отвечу, я оставляю позади не очень красивую очередь, например

easynetq.ответ.b01688d1-35c8-4b66-b127-57cd6a155961

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

Мой метод запроса выглядит так:

    public async Task Request<TRequest, TResponse>(TRequest request, Action<Task<TResponse>> onResponse)
        where TRequest : class
        where TResponse : class
    {
        try
        {
            Console.WriteLine("Publishing Request: {0}", request);
            await this.bus.RequestAsync<TRequest, TResponse>(request).ContinueWith(onResponse);
        }
        catch (TaskCanceledException ex)
        {
            Console.WriteLine("Task Failed: {0}", ex);
        }
        catch (EasyNetQException ex)
        {
            Console.WriteLine("Publish Request Failed: {0}", ex);
        }
    }

И мой ответ:

    public void Response<TRequest, TResponse>(Func<TRequest, Task<TResponse>> onResponse)
        where TRequest : class
        where TResponse : class
    {
        try
        {
            bus.RespondAsync(onResponse);
        }
        catch (EasyNetQException ex)
        {
            Console.WriteLine("Respond Failed: {0}", ex);
        }
    }

Итак, мой вопрос: есть ли способ удалить эту очередь?


person Wojciech Szabowicz    schedule 08.07.2020    source источник


Ответы (1)


Для всех, кто заинтересован, лучшее, что я мог придумать, это использовать .. хорошо, например:

using (var publishChannel = Bus.CreateMessageBus())

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

Но хороший ли это паттерн, согласно документации его будет достаточно.

Но буду экспериментировать.

person Wojciech Szabowicz    schedule 09.07.2020