2017-09-13 18 views
7

Chúng tôi đang sử dụng cần tây cho các tác vụ nền không đồng bộ của chúng tôi và chúng tôi có 2 hàng đợi cho các nhiệm vụ ưu tiên khác nhau. Chúng tôi có 2 cụm nút phục vụ riêng chúng. Mọi thứ đang hoạt động tốt như mong đợi.Ưu tiên hàng đợi trong nhiều hàng đợi trong cần tây?

Câu hỏi:

Chúng tôi nhận nhiệm vụ ưu tiên chủ yếu là thấp. Để tối ưu hóa việc sử dụng tài nguyên, tôi tự hỏi là có một cách để cấu hình công nhân (nghe hàng đợi ưu tiên cao) để nghe cả hai hàng đợi. Nhưng lấy việc làm từ hàng đợi ưu tiên cao hơn chừng nào còn có công việc nào đó? và dự phòng cho hàng đợi ưu tiên thấp khác.

Tôi đã trải qua quá trình lập lịch nhiệm vụ dựa trên mức độ ưu tiên được thảo luận @Celery Task Priority.

Nhưng câu hỏi của tôi là ưu tiên hàng đợi không chỉ các tác vụ trong hàng đợi.

Trả lời

1

Bạn có thể đạt được điều này một phần bằng cách xác định nhiều hàng đợi cho người lao động khi bắt đầu.

Bạn có thể làm điều đó bằng lệnh sau: Ngoài ra, hãy tham khảo here để biết thêm chi tiết.

celery -A proj worker -l info -Q Q1,Q2 

Mặc dù phương pháp này có vấn đề. Nó không làm điều đó với cách tiếp cận dự phòng. Vì, công nhân nghe nhiều hàng đợi phân phối đồng đều các nguồn lực trong số đó.

Do đó, yêu cầu xử lý của bạn chỉ từ 'hàng đợi ưu tiên cao' ngay cả khi không thể đạt được thứ gì đó trong 'hàng đợi ưu tiên bình thường'. Điều này có thể được giảm thiểu bằng cách phân bổ nhiều Công nhân hơn (có thể là 75%) cho 'hàng đợi ưu tiên cao' và 25% cho 'hàng đợi ưu tiên bình thường'. hoặc chia sẻ khác nhau dựa trên tải công việc của bạn.

0

Thật không may, không thể dùng cần tây ra khỏi hộp.

Giải pháp tối ưu là bắt đầu 2 công nhân. 1 cho ưu tiên thấp và ưu tiên cao khác với quy trình n.

Khi không có nhiệm vụ ưu tiên cao, công nhân có nhiệm vụ ưu tiên thấp sẽ sử dụng tất cả các tài nguyên và ngược lại. Nếu có cả hai nhiệm vụ, tài nguyên sẽ được phân phối đồng đều.

+0

Nó có thể là một giải pháp. Tôi sẽ thử . –

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