Сельдерей с Django
Я создаю приложение и пытаюсь выполнять некоторые задачи каждый день. Поэтому я видел некоторые ответы, блоги и учебники о using celery
, и мне понравилась идея использования celery для выполнения фоновых заданий.
Но у меня есть несколько вопросов о сельдерее :-
Как упоминается в Документации Celery, после установки задачи celery, я должен запустить команду типа celery -A proj worker -l INFO
, которая обработает все задачи и после команды запустит задачи, поэтому мой вопрос в том, что я должен остановить работающий сервер, чтобы выполнить эту команду и
что если я разверну Django проект с celery на Heroku или Python Anywhere.
Должен ли я выполнять команду каждый раз или я могу сначала выполнить эту команду, а затем запустить сервер?
Если я должен запускать эту команду каждый раз для выполнения фоновых задач, то как это возможно при развертывании на Heroku,
Будут ли фоновые задачи celery оставаться запущенными после выполнения
python manage.py run server
только в терминале?Почему я сомневаюсь? :-
Я думаю, что при запуске
celery -A proj worker -l INFO
он будет обрабатывать (или запускать) задачи, и я не могу выполнить run server в одном терминале.Любая помощь будет очень признательна. Спасибо
Должен ли я выполнять команду каждый раз или я могу сначала выполнить эту команду, а затем запустить сервер?
Докеризация Celecry и написание собственного скрипта для автозапуска.
Вернуться на верхВы не можете запускать celery worker и приложение django в одном терминале одновременно, потому что обе эти программы должны работать параллельно. Поэтому вы должны использовать два терминала, один для django, а другой для celery worker.
Я настоятельно рекомендую прочитать эту статью о разработке heroku для использования Celery и Django на heroku.