2012-09-03 39 views
5

Tôi cố gắng để triển khai một dự án django sử dụng django, nhưng tôi có những câu hỏi chưa được giải quyết:django-cần tây trong môi trường sản xuất nhiều máy chủ

  • Tôi có nên chạy một celeryd cho mỗi máy chủ web?
  • Tôi có nên chạy chỉ một máy chủ RabbitMQ, trên một máy khác (không) chạy cần tây ở đó, accesible cho tất cả các máy chủ web của tôi? hoặc RabbitMQ phải được chạy trên mỗi máy chủ web?
  • Tôi làm cách nào để sử dụng các tác vụ định kỳ nếu mã giống nhau trong tất cả các máy chủ web?

Cảm ơn câu trả lời của bạn.

Trả lời

6

Nó thực sự phụ thuộc vào quy mô của dự án, lý tưởng là bạn có RabbitMq, công nhân cần tây và nhân viên web chạy trên các máy khác nhau.

Bạn chỉ cần một RabbitMQ và cuối cùng là nhiều công nhân xếp hàng (hàng đợi lớn hơn cần nhiều công nhân hơn).

Bạn không cần 1 nhân viên cần tây cho mỗi nhà mạng, công nhân sẽ xuất bản nhiệm vụ cho người môi giới và sau đó nhân viên sẽ lấy chúng từ đó, trên thực tế, người quản lý web không quan tâm đến số lượng công nhân được kết nối với nhà môi giới nó chỉ giao tiếp với người môi giới.

Dĩ nhiên nếu bạn đang bắt đầu một dự án nó làm cho tinh thần để giữ mọi thứ trên cùng một phần cứng và giữ ngân sách thấp và chờ cho giao thông và tiền chảy :)

Bạn muốn có cùng mã trên mọi ứng dụng đang chạy của ứng dụng của bạn, bất kể chúng là công nhân cần tây/máy chủ web hay bất kỳ thứ gì.

+0

Tôi nên làm gì để mỗi nhân viên đọc cùng một hàng đợi? Tôi đã dành nhiều giờ tìm kiếm một ví dụ, nhưng không tìm thấy gì cả. Cảm ơn. – user2372074

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