Задание Django Elastic Beanstalk Cron

#python #django #amazon-web-services #cron

#python #django #amazon-веб-сервисы #cron

Вопрос:

Я пытаюсь создать простой cron для отправки электронной почты. Я искал и пробовал разные ответы, но ни один из них, похоже, не работает.

Это мой файл django.config

Это один из ответов, которые я нашел в сети.

 container_commands:
  01_migrate:
    command: "source /opt/python/run/venv/bin/activate amp;amp; python manage.py migrate --noinput"
    leader_only: true
  02_cronjb:
    command: "cat .ebextensions/cronjobs.cron > /etc/cron.d/djangocrons amp;amp; chmod 644 /etc/cron.d/djangocrons"
    leader_only: true
  03_createsu:
    command: "source /opt/python/run/venv/bin/activate amp;amp; python manage.py createsu"
    leader_only: true
  04_collectstatic:
    command: "source /opt/python/run/venv/bin/activate amp;amp; python manage.py collectstatic --noinput"

option_settings:
  aws:elasticbeanstalk:application:environment:
    DJANGO_SETTINGS_MODULE: github.settings
    PYTHONPATH: $PYTHONPATH
  aws:elasticbeanstalk:container:python:
    WSGIPath: github.wsgi:application
  aws:elasticbeanstalk:container:python:staticfiles:
    /static/: www/static/
packages:
  yum:
    postgresql95-devel: []
  

Это cronjobs.cron

 
* * * * * root source /opt/python/run/venv/bin/activate amp;amp; /opt/python/run/venv/bin/python /opt/python/current/github/manage.py cronjb >> /var/log/cronjobs.log
  

Это мой cronjb.py

 from django.core.management.base import BaseCommand
from django.core.mail import send_mail



class Command(BaseCommand):

    def handle(self, *args, **options):
        subject = 'Hello'
        message = 'World'
        email_from = "abc@gmail.come"
        recipient_list = ['abc@gmail.com']
        send_mail(subject, message, email_from, recipient_list)
  

Все это развертывается без каких-либо ошибок, но я не получаю никаких электронных писем.

Что-то не так?

Комментарии:

1. Вы проверили /var/log/cronjobs.log ? Также используете ли вы amazon linux 1 или 2?

2. вот logs:filebin.net/4qq2txi5txdo5y44/log.txt?t=lxq3w8r7 и я использую linux 2.9.14

3. Когда вы подключаетесь к экземпляру по ssh и вручную запускаете cronjb.py , работает ли это? Другими словами, проблема ограничивается только автоматическим развертыванием, и если вы выполняете действия вручную в экземпляре, проблем нет?

4. когда я пытаюсь выполнить python cronjb.py он показывает ошибку, например, не удалось найти из django.core.management.base, но это то же самое для других пользовательских команд, но другие работают. И теперь я попробовал 04_cronjb: command: "* * * * * source /opt/python/run/venv/bin/activate amp;amp; cd /opt/python/current/app/ amp;amp; python manage.py cronjb > $HOME/cron-sqs.log 2>amp;1" leader_only: true в файле django.config, и теперь, если я попытаюсь развернуть его, появится сообщение об ошибке `Команда не удалась в экземпляре. Код возврата: 127 Вывод: /bin/sh: 2.jpg : команда не найдена. «`. Я не знаю, почему он показывает 2.jpg

5. 2.jpg это файл в корне моего проекта, где находится папка .ebextensions. Но я не знаю, почему это показывает.