Proposal: Support Entity Locking
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- python
- Lĩnh vực
- backend-api-design, distributed-systems
Hướng nghiên cứu
Bắt đầu với các entry point được đề xuất là context.lock và context.release, đồng thời so sánh hành vi dự kiến của chúng với Durable Functions lock API. Công việc được xem là hoàn thành khi dự án có một thiết kế đã được thống nhất cho việc tạm dừng acquisition, tự động disposal context-manager và release thủ công, với cả hai usage pattern được đề xuất đều được triển khai và kiểm thử.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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!
- Ngôn ngữ chính
- Python
- Star
- 157
- Fork
- 70
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Azure/azure-functions-durable-python
-
Enhancement fixed-in-v2 P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Azure/azure-functions-durable-python#617 · 1 bình luận ·
-
bug Debuggability fixed-in-v2 P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Azure/azure-functions-durable-python#587 · 2 bình luận · 1 reaction ·
-
Custom object serialization broken for orchestrator return valuesCó thể đã có người làm @andystaples đã nhận 69 ngày trước. Đang mởbug fixed-in-v2 P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Azure/azure-functions-durable-python#568 · 1 bình luận ·
-
bug fixed-in-v2 P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Azure/azure-functions-durable-python#475 · 1 bình luận ·
-
Enhancement fixed-in-v2 P3
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 62/100
Azure/azure-functions-durable-python#618 · 1 bình luận ·
Tất cả issue của Azure/azure-functions-durable-python
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Deepak3699/Ai_Mentor#244 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
btclib-org/btclib-node#1880 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
CONTRIBUTING.md: say how ticketless bug fixes and feature PRs are handledCó thể đã có người làm @khuisman đã nhận hôm nay. Đang mởv0.9.2
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 84/100
khuisman/mcp-gee-sweet#941 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
pyjanitor-devs/pyjanitor#1758 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug ready for review
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
odysseus-dev/odysseus#6641 ·
Maintainer thường phản hồi trong vòng 1 ngày