Я использую django-kronos
для создания задания cron, и оно работает нормально, когда я запускаю его вручную. Но он не работает в случае crontab.
Ниже приведен мой код для проверки работоспособности:
settings.py
ENV_PATH = os.path.join(BASE_DIR, '.env')
# Adding KRONOS PROPERTIES
KRONOS_PREFIX = '{} '.format(ENV_PATH)
KRONOS_POSTFIX = '>> /var/log/cron.log 2>&1'
У меня есть пароли в .env
файл. Поэтому я использовал KRONOS_PREFIX
для экспорта этих переменных в первую очередь. KRONOS_POSTFIX
используется для добавления журналов в мой cron.
cron.py
import kronos
@kronos.register('* * * * *')
def test_task():
print("IT WORKS....")
Commands:
$ python manage.py showtasks
* List of tasks registered in Kronos *
>> Kronos tasks
>> test_task
>> Django tasks
$ python manage.py installtasks
1 task removed, 1 installed.
crontab -l
* * * * * /home/sam/..../.env /home/sam/.../venv/bin/python /home/sam/.../manage.py runtask test_task --settings=my_project.settings >> /var/log/cron.log 2>&1 # kronos:4f383ee5e8844285d6ac6dc78196e377
Работает, когда я запускаю команду, указанную в crontab
, вручную, а также регистрирует вывод. Я проверил несколько статей в Интернете без какого-либо успеха.
Мне показалось, что digitalocean article несколько похож, но в моем случае это тоже не работает.
Любая помощь очень ценится.
Спасибо.