我正在尝试在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/我遵循了这条规则。我一切设置正确吗?
答案 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