Python 如何自动运行django kronos

Python 如何自动运行django kronos,python,django,Python,Django,我想用django Kronos来比较成员模型的“结束日期”和今天每凌晨1点 所以,我安装了“django Kronos”,并在安装的应用程序中编写了“Kronos” 我在项目的根目录中创建了该文件 from staff.models import Member from datetime import timedelta import datetime import kronos import random @kronos.register('1 * * * *') def the_task

我想用django Kronos来比较成员模型的“结束日期”和今天每凌晨1点

所以,我安装了“django Kronos”,并在安装的应用程序中编写了“Kronos”

我在项目的根目录中创建了该文件

from staff.models import Member
from datetime import timedelta
import datetime
import kronos
import random

@kronos.register('1 * * * *')
def the_task():
    today = datetime.date.today() 
    Member.objects.filter(end_date__lte=today).update(Membership_status=0)
为了测试,我编写了
python manage.py runtask\u任务
但是,
CommandError:Task'the_Task'找不到


如何自动运行cron.py???

如果您不特别喜欢使用kronos,您可以将其设置为一个管理命令,以便您可以从终端运行它,如:
$python manage.py\u任务

从那里,您可以从操作系统将其作为cronjob运行,或者许多托管公司提供可用于运行类似操作的预定任务

要设置管理命令,请在其中一个应用程序目录中创建以下目录结构:management/commands/

在commands目录中创建一个名为:
the_task.py
的python文件,并对其进行编辑以包含以下代码:

from django.core.management.base import BaseCommand, CommandError
from staff.models import Member
from datetime import timedelta
import datetime

class Command(BaseCommand):

    args = ''

    def handle(self, *args, **options):

        today = datetime.date.today() 
        Member.objects.filter(end_date__lte=today).update(Membership_status=0)

我发现这样做要简单得多,不需要标准django之外的库,而且易于测试,因为您也可以从终端运行它。

摘自django kronos自述文件,“kronos从项目根目录和每个应用程序中的cron模块收集任务”。我认为您忽略了这里的要点,即cron任务应该位于项目根目录或应用程序目录中定义的cron.py文件中。这就是kronos找不到任务的原因。

如果我的应用程序名中有一个是“管理”,我应该设置management/management/commands目录路径,对吗?我如何使代码每凌晨1点自动运行?正确。凌晨1点自动运行代码取决于您测试的操作系统,以及稍后您的项目部署到的操作系统。在基于Unix的系统上,您可以使用“cron”,在Windows上,您可以使用“at”。你在什么操作系统上开发/部署?我在使用Windows。你能告诉我关于使用“at”的更多细节吗?不幸的是,我以前从未在Windows上开发过,所以我对“at”命令不太熟悉。下面是命令的文档:抱歉,我帮不上什么忙了。我希望这足够让你开始。足够了:)非常感谢你的帮助!!