Как потреблять из топи c MassTransit - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь получить из топи c с помощью Masstransit, но я не могу понять, как вызвать метод потребления?

Вот моя конфигурация:

    services.AddMassTransit(serviceCollectionConfigurator =>
    {
        serviceCollectionConfigurator.AddBus(provider => Bus.Factory.CreateUsingAzureServiceBus(busFactoryConfigurator =>
        {
            var host = busFactoryConfigurator.Host(new Uri(serviceBusConfig.HostName), hostConfigurator =>
            hostConfigurator.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(
                serviceBusConfig.SharedAccessKey,
                serviceBusConfig.Key));

                //busFactoryConfigurator.Message<IInterface>(topology => topology.SetEntityName(sevicesBusConfig.TopicName));

                // Subscribe to topic with a subscription
                busFactoryConfigurator.SubscriptionEndpoint(serviceBusConfig.Subscription, serviceBusConfig.TopicName, e =>
            {
                e.ConfigureConsumer<ConsumeMessageService>(provider);
            });
        }));
    });

Вот мой ConsumerMessageService

public class ConsumeMessageService : IConsumeMessageService, IConsumer<MessageA>
{
    public Task Consume(ConsumeContext<MessageA> context)
    {
        return context.RespondAsync(new ResponseA { Value = context.Message.ToString() });
    }
}

public class ResponseA
{
    public string Value { get; set; }
}

Как я могу получить доступ к методу Consume из другого сервиса? Должен ли я создать контекст и затем отправить его в качестве параметра?

РЕДАКТИРОВАТЬ: в настоящее время у меня есть 2 сообщения в Azure служебная шина. Как я могу получить сообщения и вернуть их контроллеру? В некоторых случаях я должен получить сообщения от ConsumerService и вернуть их контроллеру. Как я могу это сделать? Можете ли вы показать мне пример этого? Я не могу обдумать это и понять, как я это делаю ..

...