Подтвердить что ты не робот

Фоновая обработка в Django без сельдерея

У меня очень маленькая часть сайта Django, которая поддерживает состояние сеанса модерируемого чата между двумя пользователями. В основном, первый пользователь говорит в течение 3 минут (и никто другой не может), затем второй пользователь говорит, затем 30 секунд паузы, и процесс повторяется еще раз. В настоящее время я использую базу данных и модель "RoomState" для управления текущим состоянием комнаты (кто может говорить и т.д.). Переходы состояния зависят от того, что клиент отправляет сообщение "ping" AJAX POST каждые 10 секунд в одно из моих представлений, которое проверяет, не наступило ли время для изменения состояния.

Это работает, но определенно чувствует себя взломанным. Мне было интересно, есть ли что-то более легкое, чем django-celery + rabbitmq для управления непродолжительными фоновыми задачами на таймере. Я понимаю, что характер веб-сайта/Django не имеет гражданства, но я просто хотел узнать, есть ли у кого-то простое предложение управлять переходом состояния более надежным способом.

4b9b3361

Ответ 1

Автор django-utils здесь, я бы предложил попробовать мой новый проект Huey - имеет более богатый набор функций, лучшие документы, более стабильные и работает с любой инфраструктурой python (включая django). Документы.

Ответ 2

Я знаю только одну альтернативу сельдерейу, которая более легка: Очередь в django-utils.

Другим способом является использование модуля subprocess, но вам, вероятно, придется решить некоторые проблемы, которые уже решены в сельдерей и Джанго-Utils.

Ответ 3

Я бы рекомендовал django-background-tasks. Я использовал его в нескольких проектах, и это действительно хорошо, как простой бегун. Также было рекомендовано Two-Scoops of Django.