我正在使用django_cron来安排工作,当我使用python manage.py runcrons这项工作很好。但是在ubuntu中添加cron作业后,cron list job没有执行。 我的setting.py是:
CRON_CLASSES = [
"home.cron.HomeCronJob",
]
FAILED_RUNS_CRONJOB_EMAIL_PREFIX = []
INSTALLED_APPS = (
'django.contrib.auth',
'..................'
'django_cron',
)
我的cron.py文件是:
from django_cron import CronJobBase, Schedule
from home.management.commands.auto_renueva import republishAds
class HomeCronJob(CronJobBase):
RUN_EVERY_MINS = 2
MIN_NUM_FAILURES = 2
schedule = Schedule(run_every_mins=RUN_EVERY_MINS)
code = 'home.home_cron_job'
def do(self):
republishAds()
然后我创建了一个用于运行此作业的shell脚本,cron.sh:
#! /bin/bash
source /home/cis/ENV/muna/bin/activate
python /home/cis/DjangoLive/Newmunda/mund2anuncios/manage.py runcrons
deactivate
我在ubuntu cron文件中添加的代码是:
*/1 * * * * /home/cis/DjangoLive/Newmunda/mund2anuncios/crons.sh >> /home/cis/Desktop/crons.log 3 >> /home/cis/Desktop/cron_errors.log
请告诉我我在这里做错了什么。
先谢谢
答案 0 :(得分:0)
作为猜测
python /home/cis/DjangoLive/Newmunda/mund2anuncios/manage.py runcrons
因为未在cron环境中设置PATH而失败。您应该包含python解释器的完整路径。
cron作业中的其他常见错误是脚本没有执行权限。通常,cron错误通过电子邮件发送到root,因此您应该了解有关根邮箱
上的错误的更多信息