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.
Nếu thỏ quá nặng, hãy cân nhắc sử dụng phụ trợ Redis thay thế. –
Vui lòng xem xét cập nhật câu trả lời đã chọn. – coleifer
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ề. –