Proposal: Support Entity Locking
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
- issue の種類
- 機能追加
- 明瞭さ
- 説明が足りない
- 活発さ
- 静か
- 技術スタック
- python
調査の方向性
提案されているエントリーポイント context.lock と context.release から始め、それらの想定される動作を Durable Functions lock API と比較します。プロジェクトで、取得の一時停止、自動的な context-manager の破棄、手動解放について合意された設計が定まり、提案されている両方の使用パターンが実装とテストでカバーされれば完了です。
索引モデルが issue の本文から書いたものです。
説明
We need to support the Durable Functions lock API that allows users to establish a critical section for serial Entity updates. I believe this would be the first OOProc PL to support this feature, so I want to make sure we're in the same page about how we plan to implement it.
I imagine the API would be yieldable, giving us an opportunity to pause the orchestrator execution if the lock cannot be readily acquired, and that it would take as argument a list of EntityIds.
In other words, I expect its interface to be as follows:
def lock(entityIds: List[string]):
Proposed syntax and usage patterns
The first, and recommended, usage pattern would be one where the lock disposal is automatically managed by some context manager, so as follows:
entityIds: List[string] = ["myEntity1", "myEntity2", ... ]
with (yield context.lock(entityIds)):
# entity ops ... the lock is released at the end of this segment
The second usage pattern is one where entities are locked and released manually by separate APIs
entityIds: List[string] = ["myEntity1", "myEntity2", ... ]
yield context.lock(entityIds)
yield context.release(entityIds)
I expect we'll want to support this second option because not all OOProc PLs with necessarily have a convenient lock-disposal syntax such as Python's "with" statement.
Please let me know if y'all have any thoughts. Otherwise, I'll proceed to prioritize this for an upcoming release. Thanks!
- 主要言語
- Python
- スター
- 157
- フォーク
- 71
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Azure/azure-functions-durable-python のほかの issue
-
Enhancement fixed-in-v2 P3
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
Azure/azure-functions-durable-python#617 · コメント 1 件 ·
-
bug Debuggability fixed-in-v2 P2
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
Azure/azure-functions-durable-python#587 · コメント 2 件 · リアクション 1 件 ·
-
Custom object serialization broken for orchestrator return values対応中かも @andystaples が 72 日前に担当しました。 オープンbug fixed-in-v2 P2
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Azure/azure-functions-durable-python#568 · コメント 1 件 ·
-
bug fixed-in-v2 P3
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
Azure/azure-functions-durable-python#475 · コメント 1 件 ·
-
Enhancement fixed-in-v2 P3
難易度 4/5 3〜5日 初心者へのやさしさ 62/100
Azure/azure-functions-durable-python#618 · コメント 1 件 ·
Azure/azure-functions-durable-python の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
esphome/esphome.io#7657 ·
メンテナーはふだん 1 日以内に返信
-
comp/gateway comp/plugins duplicate P3 type/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
NousResearch/hermes-agent#137019 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
Kumo-Tabular weights unreachable behind restrictive egress proxies (Xet + plain HTTP both fail)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
NVIDIA/structured-data-models#1091 ·
メンテナーはふだん 1 日以内に返信
-
[work-item] adam-adae-worsening-emergence: conform spec.yaml to the specification style contract (REQ-1280)対応中かも @muse-yamaa-bot が今日担当しました。 オープンwork-item
難易度 1/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信