Python中的功能還是相當(dāng)?shù)亩嗟?,比如,會涉及到使用Django定時任務(wù),在工作當(dāng)中,它的用途是比較的多的,其中,測試工程師用到這種的功能是比較多,所以我們要去進(jìn)行詳細(xì)的了解下,下面就給大家詳細(xì)的解答下。
在使用的django做測試平臺時,,多多少少都會遇到需要定時任務(wù)的功能,比如定時執(zhí)行任務(wù),檢查訂單之類的??赡苁且欢螘r間,比如每隔10分鐘執(zhí)行一次,也可能是定點(diǎn)時間,比如14:00執(zhí)行,也可能是長時間,比如每周幾,每個月的哪一天等。查看了一下相關(guān)資料,django定時任務(wù)django-crontab庫比較多教程和資料,雖然star數(shù)才五百,但是API接口比較簡單,接入也很方便,功能也很全面,當(dāng)然,也存在一此無法解決的問題,使用時需要注意的
1.使用pip install django-crontab
2.添加配置文件到settings.py INSTALLED_APPS中,
INSTALLED_APPS=( 'django_crontab', )
3.編寫定時函數(shù)
定時任務(wù)分為兩類,一種是執(zhí)行自定義的manage.py,另一種是執(zhí)行自定義函數(shù)
在Django中的app中新建一個myapp/cron.py文件,把需要定時的代碼放進(jìn)去
def my_schedule_job(): pass
4.在setting.py中增加CEONJOBS配置
CRONJOBS=[ ('*/5****','myapp.cron.my_scheduled_job') ]
也可以定義一些關(guān)鍵字參數(shù),有2種格式:
格式1:
要求:cron計時通常格式(有關(guān)更多示例,請參閱Wikipedia和crontab.guru)
要求:python模塊路徑下待執(zhí)行定時任務(wù)
可選:特定于定時任務(wù)的后綴(例如,將out/err重定向到文件,默認(rèn)值為'')
CRONJOBS=[ ('*/1****', 'appname.test_crontab.test','>>/home/python/test_crontab.log') ]
注意:>>表示追加寫入,>表示覆蓋寫入。
格式2:
要求:cron計時通常格式
要求:python模塊路徑下待執(zhí)行定時任務(wù)
可選:方法的位置參數(shù)列表(默認(rèn)值:[])
可選:方法的關(guān)鍵字參數(shù)的dict(默認(rèn)值:{})
可選:特定于定時任務(wù)的后綴(例如,將out/err重定向到文件,默認(rèn)值為'')
CRONJOBS=[ ('*/5****','myapp.cron.other_scheduled_job',['arg1','arg2'], {'verbose':0}), ('0 4***','django.core.management.call_command',['clearsessions']), ]
對于熟悉Linux中定時任務(wù)crontab的同學(xué)可能對上面第一個參數(shù)的語法很親切。上面表示每隔1分鐘
執(zhí)行一次代碼。
Linux中的定時任務(wù)crontab的語法如下:
*代表所有的取值范圍的數(shù)字 /代表每的意思,*/5就是5個單位 -代表從某個數(shù)字到某個數(shù)字 ,分來幾個離散的數(shù)字 --------------------------- 每兩個小時0*/2*** 晚上11點(diǎn)到早上8點(diǎn)之間每兩個小時,早上8點(diǎn)0 23-7,8*** 每個月的4號和每個禮拜的禮拜一到禮拜三的早上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小時執(zhí)行一次 5.添加并啟動定時任務(wù) #添加并啟動定時任務(wù) python manage.py crontab add 其他命令 #顯示當(dāng)前的定時任務(wù) python manage.py crontab show #刪除所有定時任務(wù) python manage.py crontab remove
總結(jié)
現(xiàn)在在進(jìn)行測試的時候,需要用到各種各樣的工具類產(chǎn)品,甚至是一些自動化類型的產(chǎn)品。作為測試開發(fā)工程師,我們可能沒有權(quán)限去操作服務(wù)器,那么我們就只能使用django-crontab,在指定時間(循環(huán)執(zhí)行)測試用例
到此為止,這篇文章就給大家介紹到這里了,希望可以給大家?guī)砀嗟膸椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/128021.html
摘要:今天介紹在中使用定時任務(wù)的兩種方式。添加并啟動定時任務(wù)其它命令顯示當(dāng)前的定時任務(wù)刪除所有定時任務(wù)今天的定時任務(wù)就說到這里,有錯誤之處,歡迎交流指正 今天介紹在django中使用定時任務(wù)的兩種方式。 方式一: APScheduler1)安裝: pip install apscheduler 2)使用: from apscheduler.scheduler import Scheduler...
摘要:介紹應(yīng)用舉例是一個基于開發(fā)的分布式異步消息任務(wù)隊列,通過它可以輕松的實(shí)現(xiàn)任務(wù)的異步處理,如果你的業(yè)務(wù)場景中需要用到異步任務(wù),就可以考慮使用你想對臺機(jī)器執(zhí)行一條批量命令,可能會花很長時間,但你不想讓你的程序等著結(jié)果返回,? celery 1.celery介紹 1.1 celery應(yīng)用舉例 Celery 是一個 基于python開發(fā)的分布式異步消息任務(wù)隊列,通過...
摘要:在這里的腳本有,部署到預(yù)發(fā)布生產(chǎn)服務(wù)器,清理目錄,壓縮,備份數(shù)據(jù)庫,在本地,等等。目錄存儲了所有數(shù)據(jù)庫,,,,等等的配置文件。我使用做所有的排序任務(wù),從發(fā)送郵件到從拉取數(shù)據(jù)。當(dāng)我第一次開始開發(fā)和的時候,我使用,但是已經(jīng)把所有事情移植進(jìn)了。 本文原文是 11 Things I Wish I Knew About Django Development Before I Star...
摘要:結(jié)論執(zhí)行完任務(wù)不釋放內(nèi)存與原一直沒有被銷毀有關(guān),因此可以適當(dāng)配置小點(diǎn),而任務(wù)并發(fā)數(shù)與配置項有關(guān),每增加一個必然增加內(nèi)存消耗,同時也影響到一個何時被銷毀,因為是均勻調(diào)度任務(wù)至每個,因此也不宜配置過大,適當(dāng)配置。 1.實(shí)際使用 ? 監(jiān)控task的執(zhí)行結(jié)果:任務(wù)id,結(jié)果,traceback,children,任務(wù)狀態(tài) ? 配置 backend=redis://127...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02