Я использую MassTransit + MSMQ в качестве шины передачи сообщений, что, похоже, имеет разумный успех. Однако для некоторых тестов я хочу ставить сообщения в очередь, но никогда не удалять их. Похоже, что правильный способ сделать это - не подписываться на очередь напрямую. Вот мой код:
1) Я хочу отправлять и получать сообщения из одной очереди в этом процессе [это работает]:
var solrMessageBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.ReceiveFrom("msmq://localhost/my_queue");
sbc.Subscribe(subs =>
{
subs.Handler<MyMessage>(msg => Enqueue(msg));
});
});
2) Я хочу отправлять сообщения из этого процесса, но не использовать их. MSMQ должен создавать большую очередь сообщений [это не работает]
var solrMessageBus = ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsmqConfiguration();
sbc.ReceiveFrom("msmq://localhost/my_queue");
});
Я не эксперт по MassTransit, но приведенное выше кажется разумным способом поставить в очередь, не удаляя сообщения из той же очереди. В 1) я вижу, что сообщения попадают в мой MSMQ, но в 2) сообщения никогда не попадают в очередь.
Как я могу создать очередь, не удаляя сообщения?