我有一个网站和一个webjob,其中网站是单向客户端,webjob是worker。Rebus - 将延迟的消息发送到另一个队列(Azure ServiceBus)
我使用Azure ServiceBus传输作为队列。
我得到以下错误:
InvalidOperationException: Cannot use ourselves as timeout manager because we're a one-way client
当我尝试从网站总线发送Bus.Defer。
由于Azure Servicebus内置了对timeoutmanager的支持,因此不应该从单向客户端的这个工作事件?
Bus.Defer上的文档说:通过给它添加一个头并把它传递到配置的超时管理器端点012////(默认是我们自己)来延迟邮件的传递。当时间是正确的,推迟的消息被返回到由标题所指示的地址“
我能否通过设置这样的returnAddress的解决这个问题。
headers.Add(Rebus.Messages.Headers.ReturnAddress, "webjob-worker");
这是可以添加到Rebus中的功能吗?如果是这样,我应该在GitHub仓库中创建一个问题? –
嗯,我想过 - 但后来我怀疑它应该被添加到什么地方,也想知道该怎么称呼它.....现在,我建议你通过在'IBus'上创建扩展方法来添加它。接受目标队列作为参数 – mookid8000