網(wǎng)站首頁 編程語言 正文
在使用的django做測試平臺時,,多多少少都會遇到需要定時任務(wù)的功能,比如定時執(zhí)行任務(wù),檢查訂單之類的。可能是一段時間,比如每隔 10分鐘執(zhí)行一次,也可能是定點時間,比如 14:00 執(zhí)行,也可能是長時間,比如每周幾,每個月的哪一天等。查看了一下相關(guān)資料, django 定時任務(wù) django-crontab 庫比較多教程和資料,雖然 star 數(shù)才五百,但是 API 接口比較簡單,接入也很方便,功能也很全面,當然,也存在一此無法解決的問題,使用時需要注意的
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 文件,把需要定時的代碼放進去
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 重定向到文件,默認值為'')
CRONJOBS = [ ('*/1 * * * *', 'appname.test_crontab.test','>>/home/python/test_crontab.log') ]
注意: >> 表示追加寫入, > 表示覆蓋寫入。
格式2:
要求:cron計時通常格式
要求:python模塊路徑下待執(zhí)行定時任務(wù)
可選:方法的位置參數(shù)列表(默認值:[])
可選:方法的關(guān)鍵字參數(shù)的dict(默認值:{})
可選:特定于定時任務(wù)的后綴(例如,將 out/err 重定向到文件,默認值為'')
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 的語法如下:
* * * * * command 分鐘(0-59) 小時(0-23) 每個月的哪一天(1-31) 月份(1-12) 周幾(0-6) shell腳本或者命令
* 代表所有的取值范圍的數(shù)字 / 代表每的意思,*/5 就是5個單位 - 代表從某個數(shù)字到某個數(shù)字 ,分來幾個離散的數(shù)字 --------------------------- 每兩個小時 0 */2 * * * 晚上11點到早上8點之間每兩個小時,早上8點 0 23-7,8 * * * 每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點 0 11 4 * 1-3 1月1日早上4點 0 4 1 1 * 0 6 * * * commands >> /tmp/test.log # 每天早上6點執(zhí)行, 并將信息追加到test.log中 0 */2 * * * commands # 每隔2小時執(zhí)行一次
5.添加并啟動定時任務(wù)
# 添加并啟動定時任務(wù) python manage.py crontab add
其他命令
#顯示當前的定時任務(wù) python manage.py crontab show #刪除所有定時任務(wù) python manage.py crontab remove
總結(jié)
測試平臺執(zhí)行測試用例時,可以借助jenkins之類的CI/CD工具,也可以使用定時任務(wù)crontab
,作為測試開發(fā)工程師,我們可能沒有權(quán)限去操作服務(wù)器,那么我們就只能使用django-crontab
,在指定時間(循環(huán)執(zhí)行)測試用例
原文鏈接:https://www.cnblogs.com/stormliu/p/16455670.html
相關(guān)推薦
- 2022-04-03 Django+Nginx+uWSGI?定時任務(wù)的實現(xiàn)方法_python
- 2022-05-27 對Entity?Framework?Core進行單元測試_實用技巧
- 2022-01-16 meteor node node-gyp bindings.node dll報錯解決方案
- 2022-04-28 使用Matlab制作簡易版八分音符醬游戲_C 語言
- 2022-07-10 修改redo默認傳輸用戶sys到其他---redo_transport_user參數(shù)
- 2022-07-01 c++詳細講解構(gòu)造函數(shù)的拷貝流程_C 語言
- 2022-04-04 【mybatis】spring mybatis與pageHelper分頁插件的整合
- 2022-06-22 Android使用EventBus多次接收消息_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支