我有一個網站和一個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