Django ORM框架的定時任務(wù)如何使用詳解
前言
大家在Django項目開發(fā)過程中,是不是也經(jīng)常遇到這樣的場景:需要實現(xiàn)一個定時任務(wù),但又不想脫離Django環(huán)境獨立運行,如:還需要使用Django的ORM框架操作Models類、日志框架、復(fù)用已有配置/方法等等。
大部分同學(xué),初次接觸時首先想到的就是使用第三方插件,如:django-celery,django-crontab等等,我也不例外,但實際使用過程,總有諸多不爽,要么感覺大材小用,要么功能支持不完整,要么使用很繁瑣。。。
多次嘗試摸索后,發(fā)現(xiàn)Django已經(jīng)幫我們實現(xiàn)了該功能,使用起來也是非常的方便易用。那就是利用django-admin自定義命令,使用它,就可以使用ORM框架對model進(jìn)行操作,如:定時更新數(shù)據(jù)庫,檢測數(shù)據(jù)庫狀態(tài)….. 然后將自定義命令加入到crontab任務(wù)列表中即可。
使用方法:
Django為項目中每一個應(yīng)用下的management/commands目錄中名字沒有以下劃線開始的Python模塊都注冊了一個manage.py命令,例如:
_private.py將不可以作為一個管理命令使用。
closepoll.py模塊只有一個要求 – 它必須定義一個Command類并擴(kuò)展自Basecommand或其子類
新的自定義命令可以使用python manage.py closepoll 調(diào)用。
這樣,就可以將新的自定義命令加入到Linux crontab任務(wù)列表里實現(xiàn)定時任務(wù)的目的了。
總結(jié):
用自定義新命令來實現(xiàn)定時任務(wù),實際開發(fā)過程非常簡單,但這個思路確實有讓我眼前一亮,豁然開朗。到達(dá)成功的方法多種多樣,只有想不到,沒有做不到。能找到最方便,最易用,最能提高效率的方法才是提升開發(fā)效率的根本。
好了,以上就是這篇文章的全部內(nèi)容了,本文還有許多不足,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
python爬取分析超級大樂透歷史開獎數(shù)據(jù)
這篇文章主要介紹了python爬取分析超級大樂透歷史開獎數(shù)據(jù),本次使用了requests和beautifulsoup庫進(jìn)行數(shù)據(jù)的爬取,通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02matplotlib階梯圖的實現(xiàn)(step())
這篇文章主要介紹了matplotlib階梯圖的實現(xiàn)(step()),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03django中F表達(dá)式和Q函數(shù)應(yīng)用與原理詳解
F對象查詢與Q對象查詢,剛看到大家一定會感到很陌生,其實它們也是 Django 提供的查詢方法,而且非常的簡單的高效,下面這篇文章主要給大家介紹了關(guān)于django中F表達(dá)式和Q函數(shù)應(yīng)用與原理的相關(guān)資料,需要的朋友可以參考下2023-05-05