Django自動注冊tasks及使用方式
注冊定時(shí)任務(wù)使用
最近,利用 Django + dramatiq + apscheduler 實(shí)現(xiàn)了異步消息隊(duì)列功能,能夠在Django應(yīng)用中,方便的注冊定時(shí)任務(wù)。
使用方式如下:
# app/tasks.py import dramatiq from sigma_tools import cron # ┌───────────── minute (0 - 59) # │ ┌───────────── hour (0 - 23) # │ │ ┌───────────── day of the month (1 - 31) # │ │ │ ┌───────────── month (1 - 12) # │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday) # │ │ │ │ │ # * * * * * @cron("*/1 * * * *") @dramatiq.actor def some_task(): print("每分鐘都會執(zhí)行這個(gè)任務(wù)")
開發(fā)的過程中,遇到一個(gè)問題,就是自己定義的定時(shí)任務(wù)存在tasks.py文件中,如果不在Django工程中引入這個(gè)文件,該定時(shí)任務(wù)將不會被注冊。
一個(gè)辦法是在每一個(gè)app的 __init__.py
文件中,顯式的引入其 tasks.py 模塊。由于Django會自動注冊app,注冊的同時(shí),也就會發(fā)現(xiàn)__init__.py
文件中的tasks模塊了。
但這個(gè)方法太土了,而且每個(gè)app都需要做一遍這個(gè)重復(fù)的工作,不夠優(yōu)雅。
優(yōu)雅的方式,是在注冊調(diào)度器時(shí),自動發(fā)現(xiàn)并注冊所有的tasks模塊,代碼如下:
from django.apps import apps for app in apps.get_app_configs(): try: __import__(f'{app.name}.tasks') except ImportError: pass
這樣,開發(fā)時(shí),只管聲明tasks即可.
以上就是Django自動注冊tasks及使用方式的詳細(xì)內(nèi)容,更多關(guān)于Django自動注冊tasks的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
開源軟件包和環(huán)境管理系統(tǒng)Anaconda的安裝使用
Anaconda是一個(gè)用于科學(xué)計(jì)算的Python發(fā)行版,支持 Linux, Mac, Windows系統(tǒng),提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本python并存、切換以及各種第三方包安裝問題。2017-09-09基于Tensorflow批量數(shù)據(jù)的輸入實(shí)現(xiàn)方式
今天小編就為大家分享一篇基于Tensorflow批量數(shù)據(jù)的輸入實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02解決Pytorch中Batch Normalization layer踩過的坑
這篇文章主要介紹了解決Pytorch中Batch Normalization layer踩過的坑,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05virtualenv實(shí)現(xiàn)多個(gè)版本Python共存
virtualenv用于創(chuàng)建獨(dú)立的Python環(huán)境,多個(gè)Python相互獨(dú)立,互不影響,它能夠:1. 在沒有權(quán)限的情況下安裝新套件 2. 不同應(yīng)用可以使用不同的套件版本 3. 套件升級不影響其他應(yīng)用2017-08-08python點(diǎn)云地面點(diǎn)濾波(Progressive Morphological Filter)算法介紹(PCL庫)
這篇文章主要介紹了python點(diǎn)云地面點(diǎn)濾波(Progressive Morphological Filter)算法介紹(PCL庫),了解膨脹/腐蝕這兩個(gè)基礎(chǔ)操作,可以通過對其進(jìn)行簡單組合來形成開/閉操作,需要的朋友可以參考下2021-08-08Python語言描述機(jī)器學(xué)習(xí)之Logistic回歸算法
這篇文章主要介紹了Python語言描述機(jī)器學(xué)習(xí)之Logistic回歸算法,涉及Sigmoid函數(shù),梯度上升法等相關(guān)內(nèi)容,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12