2011-01-28 42 views
5

Ứng dụng của tôi chạy trên Windows Azure xử lý các yêu cầu gửi đến từ người dùng (được đưa vào Hàng đợi Azure) và gán chúng cho những người thực.Azure - xếp hàng các nhiệm vụ dựa trên thời gian

Mọi người có một khoảng thời gian nhất định để xử lý yêu cầu. Nếu không có người nào được chỉ định xử lý yêu cầu, tôi cần chuyển sang một nhóm người mới. Về cơ bản, tôi muốn xếp hàng các nhiệm vụ này được xử lý tại một thời điểm nhất định, và sau đó xử lý chúng một lần nữa. Nếu một trong những người dùng xử lý tác vụ, tôi cần phải giải quyết tác vụ đó để người lao động không xử lý lại.

+0

câu hỏi này thú vị. tôi đang làm việc trên dự án tương tự quá. vẫn đang tìm kiếm câu trả lời. – Raptor

Trả lời

3

Bạn cần sử dụng tác vụ được lên lịch. Có hai thư viện tốt mà bạn có thể sử dụng: Quartz.NetCastle scheduler.

Với trình lên lịch biểu, tác vụ như vậy trở nên dễ dàng. Bạn chỉ cần tạo một công việc chạy khi thời gian xử lý hết hạn. Tại đó, bạn sẽ kiểm tra mọi yêu cầu chưa được xử lý và nếu có bất kỳ thông báo nào còn lại, bạn thông báo cho nhóm người tiếp theo và đặt một lần bắt đầu được lên lịch khác sau khi hết thời gian xử lý.

Hãy cho tôi biết nếu bạn cần thêm chi tiết.

Tôi đã sử dụng Quartz.net trong một webrole xanh trong ứng dụng sản xuất.

+0

Quy mô này như thế nào? Điều gì xảy ra nếu bạn đang chạy 10 vai trò web đồng thời? Điều này sẽ không tạo ra một sự trùng lặp lớn về công việc? –

+0

Mark, đây là một nhận xét tốt. Lịch trình sẽ thực sự bằng cách chạy trong mọi trường hợp. Khi công việc theo lịch trình được kích hoạt, bạn sẽ chỉ cần đẩy một tin nhắn lên hàng đợi và để nó lên vai trò công nhân. Bạn có thể peek để xem nếu cùng một tin nhắn đã tồn tại. Nhưng vẫn có một cơ hội mà nhiều thông điệp bằng nhau sẽ nằm trên hàng đợi xanh. Đó là lý do tại sao bạn nên luôn luôn phấn đấu cho tính không đáng tin cậy trong thiết kế của bạn -> trong trường hợp này có nghĩa là hệ thống của bạn miễn dịch xử lý tin nhắn nhiều lần. – santiagoIT

+0

Đôi khi, tính không thể thiếu là không thể. Trong trường hợp của tôi, tôi cần một cái gì đó kiên cường hơn thế này. –

Các vấn đề liên quan