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