在过程A中,我正在使用Bus.CreateRequestClient<TRequest>
创建客户端,然后使用client.GetResponse<TResponse1, TResponse12>(request)
获得流程B的响应。
在过程B中,我使用consumeContext.RespondAsync(@event)
响应请求,并使用consumeContext.Publish(@event)
发布事件
我有一个进程C订阅了已发布的事件。
所以我启动并运行了进程A,B和C,然后停止了进程C。我在进程A中发送请求,进程C的队列收到一条消息,但是几秒钟后,该消息从队列中消失了。
我已经检查了队列配置,配置为耐用= true和autodelete = false。
如果我用火忘记了(将消息发送到终点)而不是在A中进行请求/响应,而只在B中发布了事件,则消息将保留在C的队列中。
这是设计使然吗?另外我还注意到,如果我通过丢火而在队列中收到一条消息,则所有消息都将留在队列中,无论它是使用请求/响应创建的。
TimeToLive
被应用于请求使用者产生的每个消息,这就是为什么它最终从队列中消失的原因。