Django项目的Cron Job未激活

时间:2018-08-13 00:19:42

标签: python django cron

我正在尝试在django项目中添加一个cronjob,以每1分钟重置我的游戏得分。 我使用了cron标签,但我认为是由于该函数的路径/位置导致它不触发。 这是文件的层次结构,每个文件中都有一些文件。

ProjectBackend—
    ProjectBackend—
        - settings.py
        - wsgi.py 
        __init__.py
        urls.py
    manage.py
    heroku
    scores—
        admin.py
        cron.py
        models.py
        views.py
        urls.py
        apps.py

在上面的settings.py中,我具有以下内容:我仅向install_apps和cronjob数组添加了crontab。

CRONJOBS = [
    ('*/1 * * * *', ’scores.cron.my_scheduled_job’)
]
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'scores.apps.ScoresConfig',
    'django_crontab',
]

我已经用“ ProjectBackend.scores.cron.my_scheduled_job”和其他变体替换了cronjob的第二个参数,但没有好运。我选择了“分数”而不是“ scores.apps.ScoresConfig”,因为它被设计为apps.py

中的名称

我在上述位置的cron.py中放置了名为my_scheduled_job的函数。

现在所有功能都将打印出一个字符串,当我在manage.py所在的目录中执行以下操作时,该字符串不会显示在终端上。

‘Python3 manage.py crontab add’ 
‘Python3 manage.py crontab show’

它说:在crontab中当前活跃的工作:('* / 1 * * * *',‘scores.cron.my_scheduled_job') 在此之后,我执行python3 manage.py runserver,什么也没发生。

https://pypi.org/project/django-crontab/我遵循了这条规则。我一切设置正确吗?

2 个答案:

答案 0 :(得分:0)

django_cronjob使用crontab运行,而不使用运行服务器命令

您还可以使用manage命令并将代码写入该命令,然后手动将其添加到crontab或在使用python代码调用的函数中将其添加到crontab。

答案 1 :(得分:0)

看起来,cronjob的配置有问题。您可以访问以下给出的链接: http://django-cron.readthedocs.io/en/latest/sample_cron_configurations.html

您也可以访问此链接,以获取有关crontab的更多描述 https://kite.com/python/docs/celery.task.schedules.crontab