【发布时间】:2018-08-13 20:56:20
【问题描述】:
我正在尝试将 cronjob 添加到我的 django 项目中,该项目将每 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 中,我有以下内容:我只将 crontab 添加到 installed_apps 和 cronjob 数组。
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',
]
我已将 cronjob 的第二个参数替换为“ProjectBackend.scores.cron.my_scheduled_job”和其他变体,但没有成功。我选择了“scores”而不是“scores.apps.ScoresConfig”,因为它被设计为apps.py中的名称
我将名为 my_scheduled_job 的函数放在上述位置的 cron.py 中。
现在所有的功能都是打印出一个字符串,当我在 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/ 我关注了这个。我是否已正确设置所有内容?
【问题讨论】:
-
我建议使用 Django 命令docs.djangoproject.com/en/2.1/howto/custom-management-commands,然后通过编辑 crontab 列表 crontab -e 并添加您自己的时间来创建一个 cronjob...
-
@eddwinpaz 将它放在 management/commands 文件夹中相当于什么?我们是否将管理放在分数中?
-
请检查这个..它可能会帮助你。 coderwall.com/p/k5p6ag/run-django-commands-using-cron