我對 Azure 完全陌生,我有一個由服務總線佇列觸發的函式,訊息是 JSON 字串。現在我想檢查在收到訊息 3 分鐘后是否有另一個到達。
我該如何做到這一點?
uj5u.com熱心網友回復:
總之沒有!您必須自己輪詢服務總線訊息佇列以控制該行為。
https://stackoverflow.com/a/48899686/12040634
什么情況下需要您在 3 分鐘后檢查后續訊息?
uj5u.com熱心網友回復:
您可能想要使用“持久函式中的定時器”的概念。
https://docs.microsoft.com/en-us/azure/azure-functions/durable/durable-functions-timers?tabs=csharp
您正在使用“azure 函式”,還是想在 azure 中擁有一個函式,例如在 web 服務中?我不太確定;)
uj5u.com熱心網友回復:
我有一個由服務總線佇列觸發的功能……我想檢查在收到訊息 3 分鐘后是否有另一個到達。
Azure 服務總線可以安排或推遲訊息。兩者不一樣。延遲意味著您需要保留一條訊息并在某個時候自己檢索它。調度,需要創建一條新訊息。但是,兩者可以結合起來。收到訊息(訊息 A)后,可以推遲它并安排新訊息(訊息 B),其有效負載是訊息 A 的序列號。當訊息的 B 時間到來時,它將被您的代碼接收并且您可以請求延遲訊息 B。
這相當簡單,但您需要對默認的 Function 行為進行一些更改。您需要指定您的函式需要注入接收者才能延遲傳入的訊息 A,并創建一個發送者來發布預定的訊息。此外,功能代碼現在必須區分“資料”訊息 (A) 和控制訊息 (B)。所有這些都只能與行程內函式 SDK 一起使用,因為較新的獨立作業人員 SDK 不支持服務總線 SDK 型別。
但是,還有其他選擇。您可以使用 Durable Functions 來構建您的迷你作業流程。或者,您可以使用中間件抽象之一進行訊息傳遞,以簡化功能的實作。MassTransit和NServiceBus可以SendLocal()。
祝你征服 Azure 好運。有很多方法可以解決任何問題。特別是對于云提供商。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/461504.html
上一篇:由于ruamel.yaml安裝azure-pipeline時出現問題
下一篇:訪問流量管理器DNSURL失敗
