Tôi đã tự hỏi về các phương pháp hay nhất trong việc đồng bộ hóa nhiều cá thể xanh chạy cùng một vai trò. Chính xác hơn, tôi muốn ngăn một số vai trò công nhân làm việc trên cùng một đơn vị công việc.Đồng bộ hóa vai trò của Azure
Hàng đợi Azure dường như không giúp ích gì cho vấn đề này. Một tùy chọn là sử dụng bảng sql có khóa và các thủ tục được lưu trữ; nhưng sử dụng đồng bộ hóa sql trong Azure có vẻ hơi khó xử.
Bất kỳ ý tưởng nào?
Chỉnh sửa, chi tiết (nhưng đơn giản hóa vấn đề) của tôi là như sau:
- Có n mục tiêu.
- Một đơn vị công việc phải được thực hiện trên mỗi mục tiêu tại một khoảng thời gian cụ thể (nói 30 giây - nhưng nó khác nhau đối với từng mục tiêu).
- Tôi có m công nhân (được lưu trữ trong h trường hợp).
- Xử lý một đơn vị công việc có thể mất từ 10 giây đến 1 giờ.
Ý tưởng là tôi có một scheduler mà đặt đơn vị làm việc trong một hàng đợi Azure, và mỗi m công nhân sẽ đọc những điều này và xử lý chúng.
Vấn đề:
- worker1 bắt đầu làm việc trên unit1 (được liên quan đến target1) - một trong những điều này sẽ mất nhiều thời gian, nói 10 phút
- 30 giây trôi qua
- sự công cụ lập lịch biểu đặt một đơn vị công việc khác cho target1, nói unit13
- worker2 bắt đầu làm việc trên unit13, so với cùng target1 - không tốt
Tôi có một số ý tưởng, nhưng họ không có vẻ mây đủ, vì vậy tôi đang quan tâm đến xem bạn sẽ áp dụng giải pháp nào cho vấn đề này.
Tại sao bạn cho rằng hàng đợi sẽ không hoạt động ở đây? Hàng đợi là cách truyền thống để điều phối công việc cần được thực hiện một lần. Có một số sắc thái chắc chắn, nhưng trường hợp 90% là với hàng đợi. – dunnry
Tôi đồng ý với câu trả lời của David, hàng đợi thường là một lựa chọn tốt. Mặc dù có những lúc bạn không thể làm hàng đợi. Nhưng nếu đúng như vậy, hãy mô tả chi tiết vấn đề của bạn và chúng tôi sẽ cố gắng cung cấp câu trả lời tốt hơn. –
Trong thời gian đó, tôi đã đăng một ý tưởng cho UserVoice cho Azure - http://entlib.uservoice.com/forums/101257-windows-azure-integration-pack/suggestions/2050987-distributed-synchronization?ref=title cái gì đó có thể hữu ích cho những trường hợp đó khi Hàng đợi sẽ không hoạt động –