Выполнение команды управления Django в crontab - PullRequest
0 голосов
/ 09 июня 2018

Я пытаюсь запустить команду управления python manage.py process_tasks, предоставляемую фоновыми задачами Django, для запуска моих фоновых задач.Я хочу запустить их как cronjob.

Для этого я создаю запись на вкладке cron с помощью команды sudo crontab -e

Моя запись в crontab выглядит примерно так -

*/1 * * * * . /var/www/cronjob.sh >> /var/www/crontab.log 2>&1

и содержимое сценария оболочки, который я здесь запускаю, -

#!/bin/bash
while true
do
 echo 'starting'
 sudo su ubuntu
 . /var/www/myproject/env/bin/activate
 . /var/www/myproject/.shahrukh_aliases
 python /var/www/myproject/src/manage.py process_tasks
 echo 'finished'
 sleep 2
done

Но проблема в том, что мой экземпляр EC2 падает через некоторое время и запускается только послеЯ перезапускаю это.Я получаю следующую ошибку

-bash: fork: Cannot allocate memory

Я думаю, что она потребляет всю память и, следовательно, мой экземпляр падает.Я не знаю, как запустить задачу в cron job и почему она потребляет мою память.Я хочу знать, как я могу выполнить эту работу как cronjob.Заранее спасибо за помощь

1 Ответ

0 голосов
/ 11 июня 2018

Решение моей проблемы было простым.Я все еще могу сделать это с помощью crontab.Мне просто нужно было указать дополнительный параметр для команды process_tasks.

Итак, моя команда, которую я должен запустить из crontab, это

python manage.py process_tasks --duration 59

, так как я запускаю задание через каждую минуту, иКоманда выше запустит фоновые задачи в течение 59 секунд, а затем завершит себя, после чего будет перезапущен cron.

...