2017-01-13 5 views
1

私のワークフローでは、最も時間のかかる操作を成功させるためにサーバー時間を維持するためにリースを取得したいと考えています。タイムアウトの場合は、基本的に何か間違っているので、リース期限が切れる必要があるので、他の人がまだBLOBを操作/変更できるようにします。なぜAzure Blobのリース期間が60秒に制限されるのですか

なぜ制限は60sですか? 1時間じゃない?または1日?パラメータはTimeSpanを受け入れますが、間違って使用するのは非常に簡単です!

答えて

2

なぜ制限は60sですか? 1時間じゃない?または1日?

私たちが知っているように、あなたがAcquireLease methodを呼び出すことにより、ブロブのリースを要求した場合、リースの期限が切れるまで、ブロブがロックされ、あなたがこのBlobのリースを取得しながら、誰もが、変更することはできません/ブロブを更新します。デフォルトのロック時間が1時間以上の場合、Blobを長時間ロックします。コードに問題があり、自分でリースをリリースしない場合、このBlobを使用したい人は1時間待たなければなりません。リース期限が切れるまでの時間が長くなり、ユーザーエクスペリエンスが向上しません。

Blobを長期間リースする場合は、RenewLease methodを使用してリースを更新するか、完了した後にリースを無期限に取得してリースを明示的に解放または中断することができますあなたのタスク。

+0

あなたが説明するものは最新のものです。あなたはまだその理由を説明していない。 RenewLeaseの設計は、Manintain Lockの負担をApplicationにシフトします。これは、リースロジック全体が壊れやすい可能性があります。 APIの設計全体が誤って使いやすく、正しく使用するのが非常に難しいと感じています。 – RyanShao

関連する問題