首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的django-crontab不执行?

为什么我的django-crontab不执行?
EN

Stack Overflow用户
提问于 2022-04-01 07:07:48
回答 2查看 840关注 0票数 1

我有一个django-project,它有一个名为app的应用程序,它有一个名为cron.py的文件和一个名为main_routine()的函数。

我希望每分钟都调用main_routine()函数。

在我的django-project/django-project/settings.py中,我有这样的内容:

代码语言:javascript
复制
INSTALLED_APPS = [
    'django_crontab',
    ...
]

...

CRONJOBS = [
    ('*/1 * * * *', 'app.cron.main_routine')
]

我的django-project/app/cron.py看起来是这样的:

代码语言:javascript
复制
from app.models import SomeModel
from django.utils import timezone

def main_routine():
    object = SomeModel.objects.get(name='TestObject1')
    object.updated = timezone.now()
    object.save()

当然,我运行:python3 manage.py crontab add和终端打印:

代码语言:javascript
复制
adding cronjob: (someHash) -> ('*/1 * * * *', 'app.cron.main_routine')

为了安全起见,我运行了:python3 manage.py crontab show和终端打印:

代码语言:javascript
复制
Currently active jobs in crontab:
someHash -> ('*/1 * * * *', 'app.cron.main_routine')

要检查每件事是否有效,我运行:python3 manage.py crontab run someHash

然后,我查看管理页面,并看到TestObject1有一个updated日期时间刚刚。(到目前为止,一切似乎进展顺利)

主要问题:无论我等待多长时间,作业都不会自动执行。

我做错了什么?

一些背景信息:

  • 我正在运行这个在VPS上没有其他任何东西。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-04-07 05:49:25

首先:我仍然不知道为什么crontab不工作。

然而,我找到了一个解决这个问题的方法。

您可以使用python高级调度程序。apscheduler,代替crontab

这样做的目的是编写一个模块,其中包含您想要的功能,并将其连接到AppConfig应用程序的apps.py文件中。

这篇文章中有一个很好的演练。

票数 0
EN

Stack Overflow用户

发布于 2022-08-11 20:39:48

不能评论因为我是新来的

同样的事情也发生在我身上,直到我像你一样手动运行它(与散列一样)。原来我的代码中有一个bug,所以当它到达时,crontab会自动取消它,因为它会产生一个错误!

我已经设置了一个5分钟的计时器来验证作业是否成功地运行了。我的设置与您完全相同(+一些工厂和api请求)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71703065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档