python定時(shí)任務(wù)

定時(shí)任務(wù)使用的場(chǎng)景很多,以定時(shí)生成靜態(tài)首頁(yè)為例。

1. 安裝支持包:django-crontab

安裝方式:pip install django-crontab

2. 注冊(cè)定時(shí)應(yīng)用

在settings.INSTALLED_APPS中添加應(yīng)用:

INSTALLED_APPS = [    
    'django_crontab', # 定時(shí)任務(wù)
]

3. 定時(shí)任務(wù)crontab的時(shí)間設(shè)置格式

定時(shí)時(shí)間基本格式 :
5個(gè)''符號(hào): * * * * 命令
依次對(duì)應(yīng):分 時(shí) 日 月 周

M: 分鐘(0-59)。每分鐘用 * 或者 */1 表示
H:小時(shí)(0-23)。(0表示0點(diǎn))
D:天(1-31)。
m: 月(1-12)。
d: 一星期內(nèi)的天(0~6,0為星期天)。

示例:

每1分鐘執(zhí)行一次myCommand
* /1* * * * myCommand

每小時(shí)的第3和第15分鐘執(zhí)行
3,15 * * * * myCommand

在上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
3,15 8-11 * * * myCommand

每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
3,15 8-11 */2 * * myCommand

每周一上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行
3,15 8-11 * * 1 myCommand

4. 設(shè)置定時(shí)任務(wù)

在settings中添加CRONJOBS,設(shè)置定時(shí)任務(wù)。

以下示例定時(shí)任務(wù)為:apps下--contents應(yīng)用內(nèi)--generate_static_index_html方法;
定時(shí)時(shí)間為:每隔一分鐘運(yùn)行一次;
">>"符:拼接定時(shí)任務(wù)運(yùn)行結(jié)果保存路徑。

例如我想進(jìn)行定時(shí)執(zhí)行test.py下的abc(),則為
CRONJOBS = [
    # 每1分鐘生成一次首頁(yè)靜態(tài)文件
    ('*/1 * * * *', 'contents.crons.generate_static_index_html', '>> ' + os.path.join(os.path.dirname(BASE_DIR), 'logs/crontab.log'))
]

5. 設(shè)置中文支持

在定時(shí)任務(wù)中,如果出現(xiàn)非英文字符,會(huì)出現(xiàn)字符異常錯(cuò)誤

在settings中添加:
CRONTAB_COMMAND_PREFIX = 'LANG_ALL=zh_cn.UTF-8'

6. 管理定時(shí)任務(wù)

添加定時(shí)任務(wù)到系統(tǒng)中,啟動(dòng)定時(shí)任務(wù)必須先執(zhí)行改語(yǔ)句。
$ python manage.py crontab add

顯示已激活的定時(shí)任務(wù)
$ python manage.py crontab show

移除定時(shí)任務(wù)
$ python manage.py crontab remove

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容