【问题标题】:Cron Job for Django Project not activatingDjango 项目的 Cron 作业未激活
【发布时间】: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/ 我关注了这个。我是否已正确设置所有内容?

【问题讨论】:

标签: python django cron


【解决方案1】:

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

您也可以使用您的管理命令并将您的代码写入该命令,然后手动将其添加到 crontab 或使用 python 代码调用函数时。

【讨论】:

  • 如何手动添加?
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2015-06-09
    • 1970-01-01
    • 2015-01-17
    • 2014-04-04
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    相关资源
    最近更新 更多