国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Django使用APSchedule實現(xiàn)簡單定時任務(wù)

這篇具有很好參考價值的文章主要介紹了Django使用APSchedule實現(xiàn)簡單定時任務(wù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、環(huán)境依賴

系統(tǒng):windows10

python: python==3.9.0

djnago==3.2.0

APScheduler==3.10.1

二、django中的配置

1、創(chuàng)建utils包,在包里面創(chuàng)建schedulers包

utils/schedulers/task.py

#1、設(shè)置 Django 環(huán)境,就可以導(dǎo)入項目的模型類這些了
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "項目根目錄名.settings")
import django
django.setup()
#2、一些需要的模塊
from datetime import datetime,timedelta,date

#3、django項目中模型類

NOW_DATETIME = datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S')
NOW_DATE = date.today().strftime('%Y-%m-%d')

def example_interval():
    '''
    每隔一段固定時間就執(zhí)行一次
    :return:
    '''
    print('interval',NOW_DATETIME)

def example_cron():
    '''
    在每天的固定時間執(zhí)行
    :return:
    '''
    print('cron,凌晨開始執(zhí)行的定時任務(wù)')

def example_date():
    '''
    在指定日期執(zhí)行一次,就執(zhí)行一次
    :return:
    '''
    print(f'date,指定日期執(zhí)行一次:{NOW_DATETIME}')

utils/schedulers/scheduler.py

# 2、導(dǎo)入所需的調(diào)度器類和觸發(fā)器類
from apscheduler.jobstores.memory import MemoryJobStore
from apscheduler.jobstores.redis import RedisJobStore
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger
from apscheduler.triggers.cron import CronTrigger
from apscheduler.triggers.date import DateTrigger
from pytz import timezone
from threading import RLock
from django.conf import settings
from datetime import datetime,timedelta
lock = RLock()

#3、導(dǎo)入定時任務(wù)
from .task import example_interval   #例子,時間間隔,每隔一段時間執(zhí)行
from .task import example_cron  #指定時間執(zhí)行,在指定時間點執(zhí)行
from .task import example_date #指定日期執(zhí)行,執(zhí)行一次

class __SchedulerManage(BackgroundScheduler):
    _instance = None
    def __new__(cls, *args, **kwargs):
        if cls._instance:
            return cls._instance
        with lock:
            if cls._instance:
               return cls._instance
            cls._instance = super().__new__(cls)
            return cls._instance

    def __init__(self):
        super().__init__()
        # 1、設(shè)置時區(qū)
        self.timezone = timezone(settings.TIME_ZONE)
        # 2、使用內(nèi)存存儲定時任務(wù)信息
        jobstore_redis = RedisJobStore(host='localhost', port=6379, db=0, password='redis密碼')
        jobstore_memory = MemoryJobStore()
        self.add_jobstore(jobstore_memory)
        # 3、添加任務(wù)
        self.add_task()

    def add_task(self):
        '''
        自定義的功能: 用來添加定時任務(wù)的
        :return:
        '''
        '1、三種觸發(fā)器的例子'
        #每隔一段固定時間段執(zhí)行一次,1小時執(zhí)行一次,設(shè)置開始時間是啟動時間后的3分鐘
        self.add_job(example_interval, trigger=IntervalTrigger(hours=1,start_date=datetime.now()+timedelta(minutes=3)), id='example_interval', replace_existing=True)
        #設(shè)置每天的11:03:10 執(zhí)行一次
        self.add_job(example_cron,trigger=CronTrigger(hour=11,minute=3,second=10),id='example_cron',replace_existing=True)
        #設(shè)置在2023-08-10 11:03:01執(zhí)行一次,只執(zhí)行一次
        self.add_job(example_date,trigger=DateTrigger(run_date=datetime(2023,8,10,11,3,1)),id='example_date',replace_existing=True)

#也可以在實例化時設(shè)置時區(qū):__SchedulerManage(timezone=timezone('Asia/Shanghai'))
scheduler_ = __SchedulerManage()
if __name__ == '__main__':
    #啟動 scheduler_.start()  或者 scheduler_() 兩種方式都ok
    scheduler_()

utils/schedulers/__init__.py

2、項目配置文件settings.py文章來源地址http://www.zghlxwxcb.cn/news/detail-744105.html

####配置定時任務(wù)
#啟動定時任務(wù)
from utils.schedulers import scheduler_
scheduler_.start()

到了這里,關(guān)于Django使用APSchedule實現(xiàn)簡單定時任務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Django - 定時任務(wù)框架【django-apscheduler】基本使用詳解(二)

    Django - 定時任務(wù)框架【django-apscheduler】基本使用詳解(二)

    一個網(wǎng)頁會有很多數(shù)據(jù)是不需要經(jīng)常變動的,比如說首頁,變動頻率低而訪問量大,我們可以把它靜態(tài)化,這樣就不需要每次有請求都要查詢數(shù)據(jù)庫再返回,可以減少服務(wù)器壓力 我們可以使用Django的模板渲染功能完成頁面渲染 APScheduler的全稱是Advanced Python Scheduler。它是一個

    2024年02月12日
    瀏覽(34)
  • STM32 實現(xiàn)簡單定時任務(wù)調(diào)度器,動態(tài)創(chuàng)建任務(wù),兩種思路實現(xiàn)流水燈

    STM32 實現(xiàn)簡單定時任務(wù)調(diào)度器,動態(tài)創(chuàng)建任務(wù),兩種思路實現(xiàn)流水燈

    代碼實現(xiàn)和硬件沒關(guān)系,所以并不限于STM32,Arduino 之類的其他地方也能用,只要有一個能獲取時間的函數(shù)就行,或者說,只要有一個會隨著時間自動增加的變量就行,時間單位無所謂,所以確實想的話,拿到電腦上也能用。后面會用跑馬燈程序來說明定時任務(wù)的玩法,可以直

    2024年02月10日
    瀏覽(21)
  • 基于Mongodb分布式鎖簡單實現(xiàn),解決定時任務(wù)并發(fā)執(zhí)行問題

    我們?nèi)粘i_發(fā)過程,會有一些定時任務(wù)的代碼來統(tǒng)計一些系統(tǒng)運行數(shù)據(jù),但是我們應(yīng)用有需要部署多個實例,傳統(tǒng)的通過配置文件來控制定時任務(wù)是否啟動又太過繁瑣,而且還經(jīng)常出錯,導(dǎo)致一些異常數(shù)據(jù)的產(chǎn)生 網(wǎng)上有很多分布式鎖的實現(xiàn)方案,基于redis、zk、等有很多,但

    2023年04月18日
    瀏覽(25)
  • django定時任務(wù)(django-crontab)

    django定時任務(wù)(django-crontab)

    目錄 一:安裝django-crontab: 二:添加django_crontab到你的INSTALLED_APPS設(shè)置: 三:運行crontab命令來創(chuàng)建或更新cron作業(yè): 四:定義你的cron作業(yè) 五:創(chuàng)建你的管理命令: 六:重啟cron服務(wù): 在Django中,你可以使用多種方法來實現(xiàn)定時任務(wù)。其中,django-crontab是一個流行的第三方庫,

    2024年02月19日
    瀏覽(14)
  • Django項目定時任務(wù)django-crontab

    Django項目定時任務(wù)django-crontab

    ????????首先定義一個定時任務(wù)函數(shù)tasks.py(見文章末尾示例),編寫函數(shù),然后在setting.py中配置定時任務(wù) ????????1、首先安裝django-crontab ????????2、在setting.py中添加應(yīng)用 (在所有自定義注冊app之上) ????????在項目根路徑setting.py中設(shè)置定時任務(wù) ????????

    2024年04月11日
    瀏覽(14)
  • Django實戰(zhàn)項目-學(xué)習(xí)任務(wù)系統(tǒng)-定時任務(wù)管理

    Django實戰(zhàn)項目-學(xué)習(xí)任務(wù)系統(tǒng)-定時任務(wù)管理

    接著上期代碼框架,開發(fā)第4個功能,定時任務(wù)管理,再增加一個學(xué)習(xí)定時任務(wù)表,主要用來設(shè)置周期重復(fù)性的學(xué)習(xí)任務(wù),定時周期,定時時間,任務(wù)標題和內(nèi)容,預(yù)計完成天數(shù),獎勵積分和任務(wù)狀態(tài)等信息。 現(xiàn)實中學(xué)習(xí)一門課程或一項技能知識,需要很長時間的學(xué)習(xí)積累才

    2024年02月08日
    瀏覽(16)
  • Django之定時任務(wù)--apscheduler

    Django之定時任務(wù)--apscheduler

    在寫一個興趣班教務(wù)管理的小程序時,使用了Django后臺來管理數(shù)據(jù)庫,由于每天要根據(jù)現(xiàn)有設(shè)定的班級進行課表的更新,所以需要一個定時器,但是開發(fā)環(huán)境是在windows上,后臺部署在linux上,問了chatGPT,說是apscheduer支持跨平臺使用,然后就選了這個,以下是使用過程,按c

    2024年02月13日
    瀏覽(19)
  • 利用Django和Celery管理定時任務(wù)

    同步發(fā)表于個人站點: http://panzhixiang.cn/article/2023/3/16/68.html 我們以前一直使用k8s的cronjob來管理定時任務(wù)的。把定時任務(wù)相關(guān)的代碼單獨封裝成一個pod,然后以cronjob的方法來觸發(fā)。 雖然這個方法操作很簡單,沒有什么第三方資源的依賴(比如Redis),但是也有一個明顯的缺點

    2024年02月07日
    瀏覽(21)
  • python實現(xiàn)定時任務(wù)的8種方式詳解

    python實現(xiàn)定時任務(wù)的8種方式詳解

    ????????在日常工作中,常常會用到需要周期性執(zhí)行的任務(wù),一種方式是采用 Linux 系統(tǒng)自帶的 crond 結(jié)合命令行實現(xiàn)。另外一種方式是直接使用Python。???????? ????????當每隔一段時間就要執(zhí)行一段程序,或者往復(fù)循環(huán)執(zhí)行某一個任務(wù),這就需要使用定時任務(wù)來執(zhí)行

    2023年04月09日
    瀏覽(27)
  • Django+Celery框架自動化定時任務(wù)開發(fā)

    Django+Celery框架自動化定時任務(wù)開發(fā)

    本章介紹使用DjCelery即Django+Celery框架開發(fā)定時任務(wù)功能,在Autotestplat平臺上實現(xiàn)單一接口自動化測試腳本、業(yè)務(wù)場景接口自動化測試腳本、App自動化測試腳本、Web自動化測試腳本等任務(wù)的定時執(zhí)行、調(diào)度、管理等,從而取代Jenkins上的定時執(zhí)行腳本和發(fā)送郵件等功能。** 自動化

    2024年04月15日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包