django cron_tab不发送电子邮件为什么?

时间:2017-06-25 02:40:59

标签: python django cron

我正在试着玩django cron_tab,我也知道其中一个名为django cron,但cron_tab被很多人推荐。

我安装了它(我相信它已正确安装,因为我运行命令时没有错误)

但它不起作用。 (它是否与在本地运行它有关?它为什么不能正常工作?)

我已按照此处的所有步骤安装cron_tab

https://pypi.python.org/pypi/django-crontab

我确实通过pip安装了它,我将它放入INSTALLED_APPS

也在我的设置中添加

CRONJOBS = [
('1 * * * *', 'main.extras.cron_job.my_scheduled_job')
]

我下面有一个名为main的文件夹是extras目录,在extras目录下我有一个名为cron_job.py的文件

cron_job.py

def my_scheduled_job():
    from django.core.mail import send_mail
    print('######################################')  // this is added because I want to see if terminal / console would print this out as I would know at least the function did at least run but never seen this got printed

    send_mail(
        'cron job test',
        'Here is the message.',
        'from@hello.com',  // using real email locally
        ['to@hello.com'],  // using real email locally 
        fail_silently=False,
    )

我相信我的cron设置每分钟运行以下功能

我目前正在使用pycharm并使用正常运行的python manage.py runserver运行整个应用程序。

然后我按照文档提到的那样运行了这个命令。

python manage.py crontab add

然后我会收到此消息

adding cronjob: (1d3207c6e306b905406569c4fab310a3) -> ('1 * * * *', 'main.extras.cron_job.my_scheduled_job')

如果我运行此命令

python manage.py crontab show

我会收到此消息

Currently active jobs in crontab:
1d3207c6e306b905406569c4fab310a3 -> ('1 * * * *', 'main.extras.cron_job.my_scheduled_job')

有人可以帮我解决一下我做错了吗?

提前致谢

编辑:

我也尝试了这个,虽然

没有用
CRONJOBS = [
    ('*/1 * * * *', 'main.extras.cron_job.my_scheduled_job')
]

1 个答案:

答案 0 :(得分:0)

我认为这是错误的:

CRONJOBS = [
('1 * * * *', 'main.extras.cron_job.my_scheduled_job')
]

我不是cron专家,但我认为这就像00:01,01:01,02:01(每小时)......(https://en.wikipedia.org/wiki/Cron#Overview

出于测试目的,请尝试使用:

CRONJOBS = [
('* * * * *', 'main.extras.cron_job.my_scheduled_job')
]

这将每分钟执行一次脚本,或者:

CRONJOBS = [
('*/5 * * * *', 'main.extras.cron_job.my_scheduled_job')
]

每5分钟运行一次(注意使用“/”:* / 1 - 每1分钟,* / 2 - 每2分钟......)

(抱歉英语错误)