Не удается заставить Cronjob работать на Elastic beanstalk в проекте Django
Я пытался сделать это в течение нескольких дней. Просмотрел много статей и много постов на StackOverflow, но ничего не помогло.
Я развернул проект django на elastic beanstalk. У меня есть команда, которую я хочу выполнять каждый час.
У меня есть 3 .config
файла в .ebextensions
dir
django.config
option_settings:
aws:elasticbeanstalk:container:python:
WSGIPath: project/wsgi.py
db-migrate.config
container_commands:
01_migrate:
command: "source /var/app/venv/*/bin/activate && python3 manage.py migrate"
leader_only: true
02_process_cron:
command: "cat .ebextensions/crontab.txt > /etc/cron.d/crontab && chmod 644 /etc/cron.d/crontab"
leader_only: true
option_settings:
aws:elasticbeanstalk:application:environment:
DJANGO_SETTINGS_MODULE: project.settings
crontab.txt
* * * * * source /opt/python/run/venv/bin/activate && cd /opt/python/current/app/ && source /opt/python/current/env && python3 manage.py my_process >> /var/log/myjob.log 2>&1
Для тестирования у меня есть cronjob для every minute
- Я не нахожу ни одного
myjob.log
файла при загрузке полных логов с elastic beanstalk. - Мое приложение всегда находится в состоянии
Degraded
, и оно просто говоритFollowing services are not running: release.
. У меня даже нет ничего с именемrelease
Почему AWS должен усложнять выполнение простых процессов. Я имею в виду, что на heroku запуск django cronjob - это просто добавление команды и все.
буду признателен за любую помощь. спасибо заранее.
Простите, что спрашиваю, но вы уверены, что скрипты имеют правильные разрешения для запуска? sudo grep CRON /var/log/syslog Это легко упустить из виду.
sudo chmod a+x FILENAME
Чтобы сделать ваши скрипты исполняемыми, если проблема в этом =)