第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Azure函數(shù)-寫入表輸出綁定時處理錯誤

Azure函數(shù)-寫入表輸出綁定時處理錯誤

胡說叔叔 2021-04-06 13:19:56
我有一個Azure功能設(shè)置。其觸發(fā)器設(shè)置為服務(wù)總線隊(duì)列消息。觸發(fā)功能后,將以某種方式處理消息。如果在處理過程中遇到任何異常,我將處理該錯誤,并將消息保存在Azure表存儲集中作為輸出綁定,以進(jìn)行記錄。我想處理在向輸出綁定中寫入內(nèi)容時引發(fā)的所有錯誤。我將如何去做?錯誤詳情我在寫入輸出綁定(表存儲)期間遇到的錯誤之一是某些鍵的值無法保存。例如,消息中的鍵之一是numbertime類型的值。在寫入此數(shù)據(jù)時,我得到了一個例外,即鍵的值不能容納Int32數(shù)字。我認(rèn)為表存儲嘗試將數(shù)字轉(zhuǎn)換為Int32默認(rèn)值,但失敗了。要解決此問題,我將所有鍵都轉(zhuǎn)換為具有字符串值。現(xiàn)在我可以保存。但是我仍然想在寫入表存儲輸出綁定時處理任何不可預(yù)見的錯誤。在這種情況下,處理錯誤很重要,因?yàn)槿绻凑_使用服務(wù)總線消息,則不會在服務(wù)總線隊(duì)列中刪除該消息,并且在完成Azure函數(shù)執(zhí)行后,該消息再次觸發(fā)函數(shù),并且函數(shù)進(jìn)入不確定循環(huán)。以下是Azure函數(shù)的示例module.exports = async function (context, mySbMsg) {    try{        // process service bus message        await processMsg(mySbMsg);    } catch(e) {        // if processing fails, save the message in Azure table        try{            // my own try to handle errors, but was unsuccessful            await new Promise(function (resolve, reject) {                context.bindings.tableBinding = [];                context.bindings.tableBinding.push({                    PartitionKey: mySbMsg.id|| "unknown",                    RowKey: time + "",                    errorMessage: e.message || "",                    ...mySbMsg                })                resolve();            });        } catch (e) {            // do something HERE;            // exception on output binding didn't brought me here        }    }    context.done();}
查看完整描述

1 回答

?
侃侃無極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個贊

輸入和輸出綁定在函數(shù)范圍之外執(zhí)行,這就是為什么您不能在函數(shù)內(nèi)輸入catch塊的原因。如果要捕獲錯誤,則可以自己處理寫入存儲的操作,而不必使用輸出綁定。

但是,如果您無法寫入存儲,則服務(wù)總線隊(duì)列將不會在無限循環(huán)中觸發(fā)該功能。服務(wù)總線限制了重試次數(shù),一旦達(dá)到該限制,郵件就會移到單獨(dú)的死信隊(duì)列中,以避免無限循環(huán)。那里的消息不會過期-它們將一直坐在那里,直到您準(zhǔn)備好處理或刪除它們?yōu)橹埂?/p>

http://img1.sycdn.imooc.com//6080df0000018eed06020446.jpg

默認(rèn)的最大傳遞計數(shù)是10,您可以在隊(duì)列的屬性刀片上對其進(jìn)行配置。

至于處理死信隊(duì)列中的消息,我發(fā)現(xiàn)Service Bus Explorer非常有用。它使查看DLQ中的消息變得相當(dāng)簡單,然后將它們推回到主隊(duì)列中或?qū)⑵鋭h除。

您還可以通過編程方式訪問DLQ并構(gòu)建自動系統(tǒng)來處理這些消息。但是,由于消息無處可去,因此如果您的DLQ處理程序無法解析消息,您可能會陷入循環(huán)。


查看完整回答
反對 回復(fù) 2021-04-22
  • 1 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號