日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【django】使用django-crontab执行django自定义指令

發布時間:2023/12/20 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【django】使用django-crontab执行django自定义指令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

django-crontab 部署

需求:再指定的時間內輸入django的自定義指令,來進行一些需求的操作。
使用流程:
1.安裝:
pip install django-crontab
2.配置 settings.py文件:
再settings.py 文件中添加 django-crontab:

INSTALLED_APPS = (...'django_crontab', )

3.配置django-crontab:
再settings.py中添加一下命令:

CRONJOBS = [# 定時函數每分鐘執行一次('*/1 * * * *', '你的app名.定時函數所在的py文件名.定時函數名'),# 將定時函數執行結果輸出到指定文件(如果該路徑或文件不存在將會自動創建)('*/1 * * * *', '你的app名.定時函數所在的py文件名.定時函數名', '>> 輸出文件路徑和名稱') ]

如果要再指定的時間內輸入django自定義的指令,其實還可以定時函數:

CRONJOBS = (# 每天早上6點執行命令('0 6 * * *', 'django.core.management.call_command', ['要執行的命令']), )

注意:要執行的命令,直接輸入你django項目中自定義的指令就好,不需要添加python manage.py xxxxx(自定義指令)

操作命令:
查看系統中已有的定時任務:

python manage.py crontab show

添加和修改定時任務:

python manage.py crontab add

刪除定時任務:

python manage.py crontab remove

注意事項:
1:該django-crontab : 不能再win系統上操作。
2:如果再操作命令的時候報錯:
RuntimeError: No job with hash 18a9888406b9f5486e6b7ea52ee68dbf found. It seems the crontab is out of sync with your settings.CRONJOBS. Run “python manage.py crontab add” again to resolve this issue!

解決方案:意思就是修改過了,可以再執行一次命令就好:

python manage.py crontab add

3:django-crontab 必須再linux的crontab開啟的情況下才可以使用。
4:如果你測試有沒有跑通的時候,輸入的只是一個print()語句的話,那么你將看不到任何內容。
可以再/var/spool/mail/root中查看你的輸入語句:
一般這種情況mail的內容就只是一些正常的系統信息或者是比較重要的錯誤報告。如果你安裝了mutt的話直接用這個命令就可以查看mail的內容(用root登陸先),沒有裝的話用cat /var/spool/mail/root查看(用root登陸先)。
crontab的運行時間舉例:
crontab范例 :

每五分鐘執行 */5 * * * *每小時執行 0 * * * *每天執行 0 0 * * *每周執行 0 0 * * 0每月執行 0 0 1 * *

crontab 常用命令:
crontab -e 編輯定時任務
crontab -l 查看定時任務

還可以使用shell腳本來實現定時執行自定義指令:

寫一個shell腳本來自動運行:

創建一個shell腳本:

#!/bin/bash/usr/bin/python /xxx/xxx/xxx/manage.py sss
xxx:manage.py 所在的目錄下的絕對路徑
切換到manange.py 所在的目錄 pwd:查看當前的路徑。
sss:代表你django中自定義的指令
輸入命令:crontab -e 編輯定時任務:

輸入

0 16 * * * /xxx/xxx/xxx/lhq.sh > /xxxx/xxxx/xxxx/log.log 2>&1 1 0 16 * * *代表的是,每天的16點進行一次操作

把lhq.sh 剛才創建的shell腳本放到跟manage.py同級目錄下:

xxx代表的是:絕對路徑

lhq.sh 后面的 > /xxxx/xxxx/xxxx/log.log 2>&1 導入log日志 xxxx 代表的是導入log日志的絕對路徑。

注意:

可能此刻crontab沒有跑起來, 去查看log 日志會提示你Permission denied

解決方案:chmod 777 lhq.sh 就Ok了。

總結

以上是生活随笔為你收集整理的【django】使用django-crontab执行django自定义指令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。