Proposal: Support Entity Locking
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
Direzione di ricerca
Inizia dai punti di ingresso proposti context.lock e context.release e confronta il loro comportamento previsto con la Durable Functions lock API. Il lavoro è completato quando il progetto dispone di un design concordato per mettere in pausa l’acquisizione, effettuare lo smaltimento automatico del context-manager e procedere al rilascio manuale, con entrambi i pattern di utilizzo proposti coperti dall’implementazione e dai test.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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!
- Lingua principale
- Python
- Stelle
- 157
- Fork
- 70
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Azure/azure-functions-durable-python
-
Enhancement fixed-in-v2 P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Azure/azure-functions-durable-python#617 · 1 commento ·
-
bug Debuggability fixed-in-v2 P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Azure/azure-functions-durable-python#587 · 2 commenti · 1 reazione ·
-
Custom object serialization broken for orchestrator return valuesForse già presa @andystaples l’ha presa 69 giorni fa. Apertabug fixed-in-v2 P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Azure/azure-functions-durable-python#568 · 1 commento ·
-
bug fixed-in-v2 P3
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Azure/azure-functions-durable-python#475 · 1 commento ·
-
Enhancement fixed-in-v2 P3
Difficoltà 4/5 3-5 giorni Idoneità per principianti 62/100
Azure/azure-functions-durable-python#618 · 1 commento ·
Tutte le issue di Azure/azure-functions-durable-python
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
pyjanitor-devs/pyjanitor#1758 ·
I maintainer di solito rispondono entro 1 giorno
-
bug ready for review
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
odysseus-dev/odysseus#6641 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
happypawspillaro/happypaws#78 ·
I maintainer di solito rispondono entro 4 giorni
-
pydanty:is-working
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
pydantic/pydantic-ai#10020 ·
I maintainer di solito rispondono entro 1 giorno
-
stdlib type-bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
python/cpython#159044 · 4 commenti ·
I maintainer di solito rispondono entro 1 giorno