Django定時(shí)任務(wù)Django-crontab的使用詳解
在使用的django做測(cè)試平臺(tái)時(shí),,多多少少都會(huì)遇到需要定時(shí)任務(wù)的功能,比如定時(shí)執(zhí)行任務(wù),檢查訂單之類的??赡苁且欢螘r(shí)間,比如每隔 10分鐘執(zhí)行一次,也可能是定點(diǎn)時(shí)間,比如 14:00 執(zhí)行,也可能是長(zhǎng)時(shí)間,比如每周幾,每個(gè)月的哪一天等。查看了一下相關(guān)資料, django 定時(shí)任務(wù) django-crontab 庫(kù)比較多教程和資料,雖然 star 數(shù)才五百,但是 API 接口比較簡(jiǎn)單,接入也很方便,功能也很全面,當(dāng)然,也存在一此無(wú)法解決的問(wèn)題,使用時(shí)需要注意的
1.使用 pip install django-crontab
2.添加配置文件到settings.py INSTALLED_APPS 中,
INSTALLED_APPS = ( 'django_crontab', )
3.編寫(xiě)定時(shí)函數(shù)
定時(shí)任務(wù)分為兩類,一種是執(zhí)行自定義的manage.py,另一種是執(zhí)行自定義函數(shù)
在Django中的app中新建一個(gè)myapp/cron.py 文件,把需要定時(shí)的代碼放進(jìn)去
def my_schedule_job(): pass
4.在setting.py中增加CEONJOBS
配置
CRONJOBS = [ ('*/5 * * * *', 'myapp.cron.my_scheduled_job') ]
也可以定義一些關(guān)鍵字參數(shù),有2種格式:
格式1:
要求:cron計(jì)時(shí)通常格式(有關(guān)更多示例,請(qǐng)參閱 Wikipedia 和 crontab.guru)
要求:python模塊路徑下待執(zhí)行定時(shí)任務(wù)
可選:特定于定時(shí)任務(wù)的后綴(例如,將 out/err 重定向到文件,默認(rèn)值為'')
CRONJOBS = [ ('*/1 * * * *', 'appname.test_crontab.test','>>/home/python/test_crontab.log') ]
注意: >> 表示追加寫(xiě)入, > 表示覆蓋寫(xiě)入。
格式2:
要求:cron計(jì)時(shí)通常格式
要求:python模塊路徑下待執(zhí)行定時(shí)任務(wù)
可選:方法的位置參數(shù)列表(默認(rèn)值:[])
可選:方法的關(guān)鍵字參數(shù)的dict(默認(rèn)值:{})
可選:特定于定時(shí)任務(wù)的后綴(例如,將 out/err 重定向到文件,默認(rèn)值為'')
CRONJOBS = [ ('*/5 * * * *', 'myapp.cron.other_scheduled_job', ['arg1', 'arg2'], {'verbose': 0}), ('0 4 * * *', 'django.core.management.call_command', ['clearsessions']), ]
對(duì)于熟悉 Linux 中定時(shí)任務(wù) crontab 的同學(xué)可能對(duì)上面第一個(gè)參數(shù)的語(yǔ)法很親切。上面表示每隔1分鐘
執(zhí)行一次代碼。
Linux 中的定時(shí)任務(wù) crontab 的語(yǔ)法如下:
* * * * * command 分鐘(0-59) 小時(shí)(0-23) 每個(gè)月的哪一天(1-31) 月份(1-12) 周幾(0-6) shell腳本或者命令
* 代表所有的取值范圍的數(shù)字 / 代表每的意思,*/5 就是5個(gè)單位 - 代表從某個(gè)數(shù)字到某個(gè)數(shù)字 ,分來(lái)幾個(gè)離散的數(shù)字 --------------------------- 每?jī)蓚€(gè)小時(shí) 0 */2 * * * 晚上11點(diǎn)到早上8點(diǎn)之間每?jī)蓚€(gè)小時(shí),早上8點(diǎn) 0 23-7,8 * * * 每個(gè)月的4號(hào)和每個(gè)禮拜的禮拜一到禮拜三的早上11點(diǎn) 0 11 4 * 1-3 1月1日早上4點(diǎn) 0 4 1 1 * 0 6 * * * commands >> /tmp/test.log # 每天早上6點(diǎn)執(zhí)行, 并將信息追加到test.log中 0 */2 * * * commands # 每隔2小時(shí)執(zhí)行一次
5.添加并啟動(dòng)定時(shí)任務(wù)
# 添加并啟動(dòng)定時(shí)任務(wù) python manage.py crontab add
其他命令
#顯示當(dāng)前的定時(shí)任務(wù) python manage.py crontab show #刪除所有定時(shí)任務(wù) python manage.py crontab remove
總結(jié)
測(cè)試平臺(tái)執(zhí)行測(cè)試用例時(shí),可以借助jenkins之類的CI/CD工具,也可以使用定時(shí)任務(wù)crontab
,作為測(cè)試開(kāi)發(fā)工程師,我們可能沒(méi)有權(quán)限去操作服務(wù)器,那么我們就只能使用django-crontab
,在指定時(shí)間(循環(huán)執(zhí)行)測(cè)試用例
到此這篇關(guān)于Django定時(shí)任務(wù)Django-crontab的使用的文章就介紹到這了,更多相關(guān)Django定時(shí)任務(wù)Django-crontab內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python網(wǎng)絡(luò)編程學(xué)習(xí)筆記(一)
這篇文章主要介紹了python網(wǎng)絡(luò)編程基礎(chǔ)知識(shí),需要的朋友可以參考下2014-06-06opencv+tesseract實(shí)現(xiàn)驗(yàn)證碼識(shí)別的示例
本文主要介紹了opencv+tesseract實(shí)現(xiàn)驗(yàn)證碼識(shí)別的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06pytest利用request?fixture實(shí)現(xiàn)個(gè)性化測(cè)試需求詳解
這篇文章主要為大家詳細(xì)介紹了pytest如何利用request?fixture實(shí)現(xiàn)個(gè)性化測(cè)試需求,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09python?包實(shí)現(xiàn)?time?時(shí)間管理操作
這篇文章主要介紹了python包實(shí)現(xiàn)time時(shí)間管理操作,文章通過(guò)獲取當(dāng)前時(shí)間戳,即當(dāng)前系統(tǒng)內(nèi)表示時(shí)間的一個(gè)浮點(diǎn)數(shù),下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-04-04python添加列表元素append(),extend()及?insert()
這篇文章主要介紹了python添加列表元素append(),extend()及?insert(),列表是儲(chǔ)存元素的數(shù)據(jù)類型,既然能存儲(chǔ)元素,那么就類似數(shù)據(jù)庫(kù)一樣,增刪改查的一些功能就不能少了。下面我們就來(lái)先看看添加列表元素方法有哪些,需要的朋友可以參考一下2022-03-03Pandas數(shù)據(jù)操作分析基本常用的15個(gè)代碼片段
這篇文章主要介紹了Pandas數(shù)據(jù)操作分析基本常用的15個(gè)代碼片段,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Python?SQLAlchemy之SQL工具包和ORM的用法詳解
SQLAlchemy?是?Python?中一款非常流行的數(shù)據(jù)庫(kù)工具包,它對(duì)底層的數(shù)據(jù)庫(kù)操作提供了高層次的抽象,在本篇文章中,我們將介紹SQLAlchemy的兩個(gè)主要組成部分:SQL工具包和對(duì)象關(guān)系映射器的基本使用,需要的朋友可以參考下2023-08-08Django項(xiàng)目中動(dòng)態(tài)設(shè)置靜態(tài)文件路徑的全過(guò)程
這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目中動(dòng)態(tài)設(shè)置靜態(tài)文件路徑的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-02-02