Proposal: Support Entity Locking
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Tranquilo
- Stack tecnológico
- python
Línea de trabajo
Comienza con los puntos de entrada propuestos context.lock y context.release, y compara su comportamiento previsto con la Durable Functions lock API. Se considera terminado cuando el proyecto tenga un diseño acordado para pausar la adquisición, la eliminación automática del context-manager y la liberación manual, con ambos patrones de uso propuestos cubiertos por la implementación y las pruebas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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!
- Lenguaje dominante
- Python
- Estrellas
- 157
- Forks
- 70
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Azure/azure-functions-durable-python
-
Enhancement fixed-in-v2 P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Azure/azure-functions-durable-python#617 · 1 comentario ·
-
bug Debuggability fixed-in-v2 P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Azure/azure-functions-durable-python#587 · 2 comentarios · 1 reacción ·
-
Custom object serialization broken for orchestrator return valuesPosiblemente ocupada @andystaples la tomó hace 69 días. Abiertobug fixed-in-v2 P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Azure/azure-functions-durable-python#568 · 1 comentario ·
-
bug fixed-in-v2 P3
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Azure/azure-functions-durable-python#475 · 1 comentario ·
-
Enhancement fixed-in-v2 P3
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
Azure/azure-functions-durable-python#618 · 1 comentario ·
Todos los issues de Azure/azure-functions-durable-python
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
pyjanitor-devs/pyjanitor#1758 ·
Los mantenedores suelen responder en 1 día
-
bug ready for review
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
odysseus-dev/odysseus#6641 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
happypawspillaro/happypaws#78 ·
Los mantenedores suelen responder en 4 días
-
pydanty:is-working
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
pydantic/pydantic-ai#10020 ·
Los mantenedores suelen responder en 1 día
-
stdlib type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
python/cpython#159044 · 4 comentarios ·
Los mantenedores suelen responder en 1 día