簡體   English   中英

Azure功能和存儲隊列

[英]Azure Function and storage queue

我嘗試將Azure Storage Queue與azure函數一起使用,並且我想象它非常簡單-從隊列中獲取消息,進行處理,並在必要時添加新消息。 但是現在我一團糟,在函數處理當前消息時讀取了消息(我的過程很長),有時我看到隊列中的消息已經很久了。

可以用任何方式說Azure函數:

  1. 獲取消息並從隊列中刪除
  2. 正在處理訊息
  3. 如果成功-什么都沒有發生,如果失敗(例外)-讀取當前值。

而已。 沒有任何復雜的邏輯。 可能嗎?

根據以上評論

服務總線中的消息觸發了您的功能。 您處理該消息。 如果您滿意並在給定的執行時間內完成(默認5分鍾),則消息將標記為已完成。 如果您不滿意,請拋出異常。 該功能將認為消息未完成並放棄它,因此它會重新出現在隊列中,但是您的重試計數將一直增長,直到達到最大值,然后將消息發送到死信隊列。

需要注意的幾點

如果您不拋出異常並且進程自己執行(由於某些處理錯誤),則它仍將其視為已放棄的消息,並將重試。 但是,如果函數成功執行而沒有引發任何錯誤,但是結果不是您想要的,則拋出您自己的異常。

同樣在服務總線中,增加鎖定時間以匹配功能的處理時間。 例如,函數需要5分鍾才能完成,但是您在服務總線中的消息鎖定時間為30秒,消息將重新出現在消息隊列中,而消息的另一個副本仍在由函數處理。 因此,請增加您認為足以使功能完成該過程的服務總線消息鎖定時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM