【问题标题】:why scheduled job using corn is not working in django?为什么使用玉米的预定工作在 Django 中不起作用?
【发布时间】:2021-02-02 16:30:24
【问题描述】:

我使用https://pypi.org/project/django-crontab/ 教程来安排玉米作业,但它不起作用: 我加了

    INSTALLED_APPS = [
    ...,
    'django_crontab',
    ]
    
    CRONJOBS = [
        ('*/1 * * * *', 'allActivitiesApp.cron.sendNotification', '>> /path/to/log/file.log'),
    ]

在 allActivitiesApp ->corn.py:

    from .models import *
    
    def sendNotification():
        # notificationList = dateBasedNotificaton.objects.filter(scheduleDate = date.today())
        obj = test(name="working")
        obj.save()
        obj.refresh_from_db()
        # print("sending notifications/messages")
        return "success"

但是当我尝试获取我找到的日志时它什么也没做:

    Feb  1 13:17:01 karanyogi CRON[43137]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
    Feb  1 13:17:01 karanyogi CRON[43138]: (karanyogi) CMD (/home/karanyogi/E-Mango/env/bin/python /home/karanyogi/E-Mango/Jan27New/eMango/manage.py crontab run 60a198cfdc0c719d07735a708d42bafb >> /path/to/log/file.log # django-cronjobs for iStudyMain)
    Feb  1 13:17:01 karanyogi CRON[43136]: (karanyogi) MAIL (mailed 71 bytes of output but got status 0x004b from MTA#012)
    Feb  1 13:18:01 karanyogi CRON[43267]: (karanyogi) CMD (/home/karanyogi/E-Mango/env/bin/python /home/karanyogi/E-Mango/Jan27New/eMango/manage.py crontab run 60a198cfdc0c719d07735a708d42bafb >> /path/to/log/file.log # django-cronjobs for iStudyMain)
    Feb  1 13:18:01 karanyogi CRON[43266]: (karanyogi) MAIL (mailed 71 bytes of output but got status 0x004b from MTA#012)
    Feb  1 13:19:01 karanyogi CRON[43285]: (karanyogi) CMD (/home/karanyogi/E-Mango/env/bin/python /home/karanyogi/E-Mango/Jan27New/eMango/manage.py crontab run 60a198cfdc0c719d07735a708d42bafb >> /path/to/log/file.log # django-cronjobs for iStudyMain)
    Feb  1 13:19:01 karanyogi CRON[43282]: (karanyogi) MAIL (mailed 71 bytes of output but got status 0x004b from MTA#012)
    Feb  1 13:20:01 karanyogi CRON[43437]: (karanyogi) CMD (/home/karanyogi/E-Mango/env/bin/python /home/karanyogi/E-Mango/Jan27New/eMango/manage.py crontab run 60a198cfdc0c719d07735a708d42bafb >> /path/to/log/file.log # django-cronjobs for iStudyMain)
    Feb  1 13:20:01 karanyogi CRON[43436]: (karanyogi) MAIL (mailed 71 bytes of output but got status 0x004b from MTA#012)
    Feb  1 13:21:01 karanyogi CRON[43789]: (karanyogi) CMD (/home/karanyogi/E-Mango/env/bin/python /home/karanyogi/E-Mango/Jan27New/eMango/manage.py crontab run 60a198cfdc0c719d07735a708d42bafb >> /path/to/log/file.log # django-cronjobs for iStudyMain)
    Feb  1 13:21:01 karanyogi CRON[43788]: (karanyogi) MAIL (mailed 71 bytes of output but got status 0x004b from MTA#012)
    Feb  1 13:22:01 karanyogi CRON[43809]: (karanyogi) CMD (/home/karanyogi/E-Mango/env/bin/python /home/karanyogi/E-Mango/Jan27New/eMango/manage.py crontab run 60a198cfdc0c719d07735a708d42bafb >> /path/to/log/file.log # django-cronjobs for iStudyMain)
    Feb  1 13:22:01 karanyogi CRON[43808]: (karanyogi) MAIL (mailed 71 bytes of output but got status 0x004b from MTA#012)

我没有在邮件中收到任何日志。

我该如何解决这个问题..?

【问题讨论】:

  • 看起来你所有的问题都源于你认为是corn而不是cron

标签: python django cron


【解决方案1】:

我认为你的文件名有问题:

In allActivitiesApp -> corn.py:

文件名应为cron.py 而不是corn.py

第二个原因可能是你没有运行命令:

python manage.py crontab add

将所有已定义的作业从 CRONJOBS 添加到 crontab

要显示该项目当前的活动作业:

python manage.py crontab show

【讨论】:

  • 文件名是 cron.py 我写错了,我已经运行了 python manage.py crontab add。
  • python manage.py crontab show 正在显示作业,但作业未执行。 ---------------- 当前 crontab 中的活动作业:60a198cfdc0c719d07735a708d42bafb -> ('*/1 * * * *', 'allActivitiesApp.cron.sendNotification', '>> /path/到/log/file.log')
  • 如果您还有其他问题,请提供帮助。我正在使用 ubuntu
  • 这表明您的 cronjob 运行良好。发送电子邮件功能可能存在一些问题。手动测试您的发送电子邮件功能。
  • 但是如果作业正在运行,为什么它没有创建测试模型的实例..?
猜你喜欢
  • 2015-04-23
  • 2020-06-06
  • 1970-01-01
  • 2023-03-20
  • 2013-08-31
  • 1970-01-01
  • 2010-12-05
  • 2020-02-22
  • 1970-01-01
相关资源
最近更新 更多