2012-01-04 30 views
11

Tôi có một phần rất nhỏ của trang web Django giữ trạng thái của phiên trò chuyện được kiểm duyệt giữa hai người dùng. Về cơ bản, người dùng đầu tiên nói trong 3 phút (và không ai khác có thể), sau đó người dùng thứ hai nói, sau đó tạm dừng 30 giây và quá trình được lặp lại một lần nữa. Tôi hiện đang sử dụng cơ sở dữ liệu và mô hình "RoomState" để quản lý trạng thái hiện tại của phòng (ai có thể nói, v.v.). Chuyển tiếp trạng thái bị ảnh hưởng bởi khách hàng gửi một "ping" tin nhắn AJAX POST mỗi 10 giây cho một trong các quan điểm của tôi, mà kiểm tra nếu đó là thời gian để thay đổi nhà nước.Xử lý nền trong Django mà không cần Celery

Tác phẩm này, nhưng chắc chắn cảm thấy bị hack. Tôi đã tự hỏi nếu có một cái gì đó nhẹ hơn django-cần tây + rabbitmq để quản lý các nhiệm vụ nền sống ngắn trên một bộ đếm thời gian. Tôi nhận ra rằng bản chất của web/Django là không trạng thái, nhưng tôi chỉ muốn xem liệu có ai có đề xuất đơn giản để quản lý việc chuyển đổi trạng thái một cách đáng tin cậy hơn không.

+1

Nếu thỏ quá nặng, hãy cân nhắc sử dụng phụ trợ Redis thay thế. –

+0

Vui lòng xem xét cập nhật câu trả lời đã chọn. – coleifer

+0

Tôi hoàn toàn đồng ý với OP mọi lúc chúng ta cần nâng cấp hoặc Django hoặc Celery một trong hai lần ngắt. Hiện tại, chúng tôi đang quét web để tìm số nhức đầu 10. Celery có 496 vấn đề nổi bật trên trung tâm git và 37 yêu cầu kéo khổng lồ sẽ không bao giờ bị kéo vào. Tất cả chúng tôi từng là nhiệm vụ được lên kế hoạch đáng tin cậy mà cần tây thì không. Các devs lãng phí thời gian của họ tích hợp một phụ trợ không ai cho một sh ​​*** về. –

Trả lời

14

Tác giả của django-utils ở đây, tôi khuyên bạn nên thử dự án mới hơn Huey - có bộ tính năng phong phú hơn, tài liệu tốt hơn, ổn định hơn và hoạt động với bất kỳ khung python nào (bao gồm django). Docs.

7

Tôi chỉ biết một giải pháp thay thế cho Celery nhẹ hơn: Queue in django-utils.

Một cách khác là sử dụng các mô-đun subprocess trực tiếp nhưng có thể bạn sẽ phải giải quyết một số vấn đề mà đã được giải quyết trong Cần tâydjango-utils.

+1

Bạn có thể muốn sử dụng https://github.com/coleifer/huey thay vì tôi không còn duy trì django-utils – coleifer

+0

Bạn có thể muốn xem [Django Q] (https://github.com/Koed00/django -q /) đó là django cụ thể và các mục tiêu đã nêu của tác giả là chính xác những gì bạn đang yêu cầu. FYI: Tôi không có liên kết và không biết tác giả. – eskhool

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