本文介绍: 这一句写入djangocron.cron文件,就是cron配置了 */1 * * * *这几个参数未改动的格式是 * * * * * 五个参数使用空格隔开分别表示 分钟 小时 天 月 周,我这里的配置就是每分钟执行后面的命令;小箭头 >> $p/djangocron.log 2>&1的意思就是 将命令输出结果追加djangocron.log文件,2>&1的意思是同时将错误信息也存入djangocron.log文件。2. app下的mycommand.pycommand内容书写简单示例如下

项目目录

1.我们自己建立的application叫做app,首先在这个app目录下,我们需要新建management目录,这个目录里应该包括:__ init__.py内容为空用于打包)和commands目录,然后commands目录下包括:__ init__.pymycommand.py ,其中 mycommand.py就是用于我们自定义command方法,目录的树状结构如下
在这里插入图片描述
2. app下的mycommand.py的command内容书写简单示例如下

from django.core.management.base import BaseCommand


class Command(BaseCommand):handle()方法必须实现
    def handle(self, *args, **options):
        print("这是app下面的mycommand命令")

我们把BaseCommand类关联进来,使用command类和handle方法来作为框架,如上,这个command实现的就是打印 “这是app下面的mycommand命令”.
通过以上 我们可以使用python manage.py mycommand 的方式运行我们自己django命令了。
app2/management/commands下的文件名是:mycommand02.py

使用cron来定期执行django command

django command我写了一个简单shell脚本

#!/usr/bin/env bash

p=$PWD
touch $p/djangocron.cron
touch $p/djangocron.log
touch $p/djangocron02.log
echo "*/1 * * * * python3 $p/manage.py mycommand >> $p/djangocron.log 2>&1" >> djangocron.cron
echo "*/1 * * * * python3 $p/manage.py mycommand02 >> $p/djangocron02.log 2>&1" >> djangocron.cron
crontab djangocron.cron
crontab -l

解释一下:

这个脚本放在与manage.py同一目录下,以便p=$PWD获取能用的当前路径
touch先建立一个djangocron.cron文件用于存放crontab命令,建立的djangocron.log和djangocron02.log用来存输日志信息

*/1 * * * * python3 $p/manage.py mycommand >> $p/djangocron.log 2>&1

这一句写入djangocron.cron文件,就是cron的配置了 */1 * * * *这几个参数未改动的格式是 * * * * * 五个参数使用空格隔开分别表示 分钟 小时 天 月 周,我这里的配置就是每分钟执行后面的命令;

后面的命令 python $p/manage.py mycommand,$p是路径引用,其实就是 python manage.py mycommad. 

箭头 >> $p/djangocron.log 2>&1的意思就是 将命令的输出结果追加到djangocron.log文件,2>&1的意思是同时将错误信息也存入djangocron.log文件

crontab djangocron.cron的作用是将我们写的djangocron.cron文件crontab中装载,装载后可以

crontab -l #查看
crontab -e #修改

只要调整cron前面设置时间参数,就可以测试自己的命令有没有成功执行查看djangocron.log来查看输出error

参考文档

原文地址:https://blog.csdn.net/weixin_42289273/article/details/129213412

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_17187.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注