gpt4 book ai didi

rebus - 为什么我不能推迟为单向客户端发送消息

转载 作者:行者123 更新时间:2023-12-02 03:16:39 27 4
gpt4 key购买 nike

尝试延迟在单向客户端上发送消息时,以下异常背后的基本原理是什么:
System.InvalidOperationException “不能将自己用作超时管理器,因为我们是单向客户端”

最佳答案

单向客户端是无法接收消息的 Rebus 客户端,因此它没有输入队列。

方式await bus.Defer(...)工作,是通过发送消息 some special headers到“超时管理器”,默认情况下它是延迟消息的端点。

但是由于单向客户端没有输入队列,它没有地方可以将延迟消息发送到。

您可以通过像这样配置外部超时管理器来制作单向客户端延迟消息:

Configure.With(...)
.(...)
.Options(o => o.UseExternalTimeoutManager(anotherQueue))
.Start();

这将导致客户端将延迟消息发送到该队列。

此外,您必须手动设置 rbs2-defer-recipient 到其他一些输入队列的 header ,以便超时管理器知道在消费时间(*)时将消息发送到哪里。

我希望能解释它:) 如果不清楚,请告诉我。

*) 实际上,Rebus 4 并非如此,因为 bus.Defer使用普通端点映射来路由消息。

关于rebus - 为什么我不能推迟为单向客户端发送消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36631303/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com