Azure / Azure/azure-functions-durable-python

create or get instance of orchestrator

Đang mở
#137 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Enhancement P3
Ngôn ngữ chính
Python
Star
157
Fork
70
Merge trung bình
2 ngày 10 giờ
Pull request đã merge (30 ngày)
2

Mô tả

I was creating a orchestration that was waiting for three events (from EventGrid) and then calls another two activities and got it working, but noticed that my code is needlessly complex, this is what happens in my trigger (with EventHubTrigger), after creating a blob object with a order_id attribute, I need this code:
```python
try:
status = await client.get_status(blob.order_id)
instance_id = status.instance_id
except Exception:
instance_id = await client.start_new("Orchestrator", blob.order_id, None)
if instance_id:
await client.raise_event(instance_id, blob.file_type, True)
else:
logging.error("Could not start orchestrator for instance: %s", blob.order_id)
```

I would expect either the `client.start_new` call to either create a new one or get an existing one, or for there to be a something like a `get_or_start_new` function on client.

The reason I needed to do it like this is that I have a single input (EventGrid triggered by storage) and need to both start a orchestration and raise an event, I do have an instance_id I can use to align the different events to the same orchestrator instance but the fact that I can't just have this function call `start_new` three times is very unintuitive and hard to debug.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu bằng cách đọc các phương thức của client được đề cập trong issue: get_status, start_new và raise_event. Xác định một thao tác tạo hoặc lấy phải hoạt động như thế nào khi nhiều event nhắm đến cùng một order_id, sau đó xác minh rằng instance kết quả có thể nhận event được yêu cầu mà không cần caller thực hiện chuỗi status-and-start.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
python
Lĩnh vực
api, backend
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.