Есть ли способ поддерживать выполнение задач на стороне сервера в django?

В принципе, у меня есть бот в моем django webapp, когда ему даются учетные данные для социальных сетей, он управляет одним из аккаунтов в социальных сетях. Я смог успешно запустить его, пока клиент все еще находится на сайте, и, как и следовало ожидать, он остановился, когда клиент закрыл сайт. Есть ли способ сохранить учетные данные, а затем продолжать работу бота даже после того, как пользователь покинет сайт, и чтобы бот по-прежнему управлял аккаунтом? Бот в основном делает несколько запросов и вызовов API. Спасибо

Много вариантов.

  • Celery. Библиотека для организации очереди задач. Готова к производству, широко поддерживается, имеет большое сообщество.
  • .
  • Dramatiq возможно с periodic. Dramatiq также является библиотекой для организации очереди задач, periodic - планировщиком задач. Менее популярный, более легкий и достаточно стабильный. Порог вхождения меньше, чем у celery, как по мне.
  • Supervisor. Supervisor - это клиент-серверная система, позволяющая пользователям отслеживать и контролировать ряд процессов на UNIX-подобных операционных системах. Устанавливается одной командой, очень легко конфигурируется, вполне подходит для небольших проектов (сложнее использовать его, когда количество фоновых процедур становится 10+).
  • .
  • Tmux. Это терминальный мультиплексор с возможностью сохранения запущенного процесса после его отключения. Может быть полезен, когда вы запускаете что-то один раз или для тестов.
  • .
  • Django Background Task. Это очередь работ с поддержкой базы данных для Django, в значительной степени основанная на библиотеке Ruby's DelayedJob. Не поддерживается и несовместима с версиями Django новее 2.2.
  • .
Вернуться на верх