[英]Azure Blob Lease and release
string uri = "myurl";
string blobstatus = GetBlobStatus(uri);
if (blobstatus != LeaseStatus.Locked.ToString())
{
string response = AquireBlob(uri);
//process data.
string abc = ":em";
ReleaseBlob(response, uri);
}
以上是我對租賃和BLOB釋放鎖碼。 我看這種方法用於多實例工作者的角色,我想運行之后的特定代碼x
的時間間隔,為多個實例可以在同一時間執行代碼。
問題是,我管理,以獲得LeaseId
正常,但在二審檢查BLOB出租狀態始終是不確定的。 為什么會這樣呢? 有什么線索嗎?
我也跟着下面的鏈接,搶得先機。
我認為您的方法不應首先依賴於檢查Blob狀態,並以此為基礎來決定是否獲取租賃。 您應該始終嘗試獲取租約並捕獲該過程中引發的異常。 這樣,如果此代碼在多實例環境中運行,則只有一個實例將能夠獲得租約(其他實例只會拋出錯誤)。
好建議..我解決了這個問題。 發現事實上LeaseStatus屬性不好,並且永遠不會返回結果。 我必須通過輸入Web請求來獲取狀態,然后才能獲得正確的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.