Tôi mới sử dụng cần tây.Tôi biết cách cài đặt và chạy một máy chủ nhưng tôi cần phân phối tác vụ cho nhiều máy. Dự án của tôi sử dụng cần tây để gán các yêu cầu của người dùng chuyển đến một khung công tác web cho các máy khác nhau và sau đó trả lại kết quả. Tôi đã đọc tài liệu nhưng không đề cập đến cách thiết lập nhiều máy. Tôi đang thiếu gì?Làm thế nào để thiết lập công nhân cần tây trên các máy riêng biệt?
Trả lời
Hiểu biết của tôi là ứng dụng của bạn sẽ đẩy yêu cầu vào hệ thống xếp hàng (ví dụ: rabbitMQ) và sau đó bạn có thể bắt đầu bất kỳ số lượng nhân viên nào trên các máy khác nhau (có quyền truy cập vào cùng mã với ứng dụng đã gửi tác vụ). Họ sẽ chọn ra các nhiệm vụ từ hàng đợi tin nhắn và sau đó làm việc với họ. Sau khi hoàn thành, họ sẽ cập nhật cơ sở dữ liệu bia mộ.
Kết quả của việc này là bạn không phải làm bất cứ điều gì đặc biệt để bắt đầu nhiều công nhân. Chỉ cần bắt đầu chúng trên các máy giống hệt nhau (cùng một cây nguồn) giống hệt nhau.
Máy chủ có hàng đợi tin nhắn không được giống với máy chủ có nhân viên và không cần giống như máy gửi công việc. Bạn chỉ cần đặt vị trí của hàng đợi tin nhắn trong celeryconfig.py
của bạn và tất cả các công nhân trên tất cả các máy có thể nhận công việc từ hàng đợi để thực hiện các tác vụ.
Con đường tôi triển khai nó là như thế này:
- bản sao dự án django của bạn trên một trường hợp Heroku (điều này sẽ chạy frontend)
- thêm RabitMQ như một add on và cấu hình nó
- bản sao dự án django của bạn vào một trường hợp heroku khác (gọi nó là công nhân), nơi bạn sẽ chạy các nhiệm vụ cần tây
- 1. Cần tây - Lập trình danh sách công nhân
- 2. Thiết lập các trường hợp EC2 là Công nhân cần làm việc với máy tính cục bộ làm máy chủ
- 3. Chia sẻ các khu vực bộ nhớ giữa các công nhân cần tây trên một máy
- 4. Làm cách nào để làm cho nhiều công nhân cần tây chạy cùng nhiệm vụ?
- 5. Chạy một công nhân cần tây trong nền
- 6. Làm thế nào để viết một công việc Upstart Ubuntu cho cần tây (django-cần tây) trong một virtualenv
- 7. Thông báo cho công việc cần tây của công nhân tắt máy
- 8. Làm thế nào để lập trình tạo ra các mục cần thiết với cần tây và Django
- 9. Làm thế nào để làm cho cần tây thử lại bằng cách sử dụng cùng một công nhân?
- 10. Nhiệm vụ của Python Celery để khởi động lại công nhân cần tây
- 11. Làm thế nào để theo dõi sức khỏe hàng đợi trong cần tây
- 12. Hành trình cần tây để xếp hàng cụ thể
- 13. Cần tây AsyncResult nhận tên máy chủ
- 14. Khi nào một nhân viên cần tây công nhận RabbitMQ rằng họ có nhiệm vụ?
- 15. truy vấn SQL, hàng riêng biệt cần thiết
- 16. Cần tây tích hợp cần tây
- 17. cần tây - chức năng gọi khi thực hiện công việc
- 18. Làm thế nào để đảm bảo gửi tin nhắn với cần tây?
- 19. Làm thế nào tôi có thể nhận/thiết lập các bit riêng lẻ trong một phao?
- 20. Cần tây với Django - triển khai
- 21. Làm cách nào để tôi thiết lập máy nhân bản CPAN cục bộ?
- 22. Làm thế nào để sử dụng Supervisor + Django + Celery với nhiều hàng đợi và công nhân?
- 23. Cần tây: mỗi giới hạn nhiệm vụ đồng thời (# công nhân cho mỗi nhiệm vụ)?
- 24. Làm thế nào để lưu trữ một công cụ IronPython trong một AppDomain riêng biệt?
- 25. Phân biệt cần tây, kombu, PyAMQP và RabbitMQ/ironMQ
- 26. Làm thế nào để thiết lập root_url
- 27. Làm thế nào để Thiết lập hình nền riêng cho nhóm của UIButtons bởi lập trình
- 28. Cần tây so với djcelery
- 29. Làm thế nào để bạn thiết lập CakePHP trên một máy chủ chia sẻ?
- 30. Làm thế nào để trích xuất các khóa riêng từ một tác nhân ssh?
Nhưng làm thế nào để máy chủ chính biết về tất cả các công nhân? –
Bạn có ý nghĩa gì với "máy chủ chính"? –
@ I'mTravelerClown tôi nghĩ rằng bạn bối rối một môi trường phân tán với một bậc thầy - nô lệ một. Không có máy chủ chính trong môi trường dựa trên cần tây nhưng nhiều nút với công nhân làm các chất liệu. Bạn có thể cần phải giải thích vấn đề của mình tốt hơn. – FlaPer87