欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python flask框架定時(shí)任務(wù)apscheduler應(yīng)用介紹

 更新時(shí)間:2022年10月10日 15:14:16   作者:HHYZBC  
Flask是Python社區(qū)非常流行的一個(gè)Web開(kāi)發(fā)框架,本文將嘗試將介紹APScheduler應(yīng)用于Flask之中實(shí)現(xiàn)定時(shí)任務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

flask-apschedulerapscheduler移植到了flask應(yīng)用中,使得在flask中可以非常方便的使用定時(shí)任務(wù)了,除此之外,它還有如下幾個(gè)特性

  • 根據(jù)Flask配置加載調(diào)度器配置
  • 根據(jù)Flask配置加載任務(wù)調(diào)度器
  • 允許指定服務(wù)器運(yùn)行任務(wù)
  • 提供RESTful API管理任務(wù),也就是遠(yuǎn)程管理任務(wù)
  • RESTful API提供認(rèn)證

下載安裝

pip install flask-apscheduler

基本使用

flask-apscheduler的相關(guān)配置,我們會(huì)將它和其它擴(kuò)展一起,放在應(yīng)用的配置里

class Config(object):
    // 配置項(xiàng)
    JOBS = [
        {
            'id': 'job1',
            'func': 'run:add',
            'args': (1, 2),
            'trigger': 'interval',
            'seconds': 3
        }
    ]
    SCHEDULER_API_ENABLED = True
def add(a, b):
    print(a+b)

JOBS列表的每一個(gè)元素表示一個(gè)定時(shí)任務(wù),列子中只有一個(gè)interval任務(wù),表示每隔3秒運(yùn)行一次函數(shù)add。func指定調(diào)用的函數(shù),args表示傳入函數(shù)的參數(shù),trigger表示啟動(dòng)方式,常用的有兩種,分別是trigger和cron。

上邊我們?cè)O(shè)置了SCHEDULER_API_ENABLED = True,可以通過(guò)訪問(wèn)http://127.0.0.1:5000/scheduler,其中scheduler是默認(rèn)的RESTful API前綴

通過(guò)查看源碼,可以發(fā)現(xiàn)flask-apscheduler提供了以下的接口

def _load_api(self):
    """
    Add the routes for the scheduler API.
    """
    self._add_url_route('get_scheduler_info', '', api.get_scheduler_info, 'GET')
    self._add_url_route('add_job', '/jobs', api.add_job, 'POST')
    self._add_url_route('get_job', '/jobs/<job_id>', api.get_job, 'GET')
    self._add_url_route('get_jobs', '/jobs', api.get_jobs, 'GET')
    self._add_url_route('delete_job', '/jobs/<job_id>', api.delete_job, 'DELETE')
    self._add_url_route('update_job', '/jobs/<job_id>', api.update_job, 'PATCH')
    self._add_url_route('pause_job', '/jobs/<job_id>/pause', api.pause_job, 'POST')
    self._add_url_route('resume_job', '/jobs/<job_id>/resume', api.resume_job, 'POST')
    self._add_url_route('run_job', '/jobs/<job_id>/run', api.run_job, 'POST')

如果需要查看當(dāng)前運(yùn)行的所有定時(shí)任務(wù),則請(qǐng)求http://127.0.0.1:5000/scheduler/jobs即可。

trigger啟動(dòng)方式

trigger表示間隔啟動(dòng),在trigger方式中,使用seconds配置間隔多久啟動(dòng)一次,單位是秒。

cron啟動(dòng)方式

cron表示定時(shí)啟動(dòng)

class Config(object):
    JOBS = [
        {
            'id': 'job1',
            'func': 'scheduler:task',
            'args': (1, 2),
            'trigger': 'cron',
            'day': '*',
            'hour': '13',
            'minute': '16',
            'second': '20'
        }
    ]
    SCHEDULER_API_ENABLED = True
def task(a, b):
    print(str(datetime.datetime.now()) + ' execute task ' + '{}+{}={}'.format(a, b, a + b))

該配置項(xiàng)則表示每天的13點(diǎn)16分20秒啟動(dòng)一次。*表示全部。

有關(guān)常用的cron配置有:

day

  • 表示天

hour

  • 表示小時(shí)

minute

  • 表示分鐘

second

  • 表示秒

week

day_of_week

  • 星期幾,如星期天使用sun,星期五使用fri,其他的類(lèi)似。

使用裝飾器定時(shí)啟動(dòng)任務(wù)

from flask import Flask
from flask_apscheduler import APScheduler
import datetime
class Config(object):
    SCHEDULER_API_ENABLED = True
scheduler = APScheduler()
# interval examples
@scheduler.task('interval', id='do_job_1', seconds=30, misfire_grace_time=900)
def job1():
    print(str(datetime.datetime.now()) + ' Job 1 executed')

表示每隔30秒調(diào)用一次job1函數(shù)。

到此這篇關(guān)于Python flask框架定時(shí)任務(wù)apscheduler應(yīng)用介紹的文章就介紹到這了,更多相關(guān)Python flask apscheduler內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python之freegames?零代碼的22個(gè)小游戲集合

    Python之freegames?零代碼的22個(gè)小游戲集合

    這篇文章主要介紹了,Python之freegames?零代碼的22個(gè)小游戲集合,文章內(nèi)容詳細(xì),簡(jiǎn)單易懂,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2023-01-01
  • Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法

    Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法

    這篇文章主要介紹了Python實(shí)現(xiàn)變量數(shù)值交換及判斷數(shù)組是否含有某個(gè)元素的方法,涉及Python字符串與數(shù)組的相關(guān)賦值、判斷操作技巧,需要的朋友可以參考下
    2017-09-09
  • Python實(shí)現(xiàn)合并兩個(gè)有序鏈表的方法示例

    Python實(shí)現(xiàn)合并兩個(gè)有序鏈表的方法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)合并兩個(gè)有序鏈表的方法,涉及Python操作鏈表節(jié)點(diǎn)的遍歷、判斷、添加等相關(guān)操作技巧,需要的朋友可以參考下
    2019-01-01
  • python分布式爬蟲(chóng)中消息隊(duì)列知識(shí)點(diǎn)詳解

    python分布式爬蟲(chóng)中消息隊(duì)列知識(shí)點(diǎn)詳解

    在本篇文章里小編給大家整理的是python分布式爬蟲(chóng)中消息隊(duì)列知識(shí)點(diǎn)詳解內(nèi)容,有興趣的朋友們可以參考下。
    2020-11-11
  • python3.6生成器yield用法實(shí)例分析

    python3.6生成器yield用法實(shí)例分析

    這篇文章主要介紹了python3.6生成器yield用法,結(jié)合實(shí)例形式分析了Python3.6中生成器yield的功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2019-08-08
  • Python模擬實(shí)現(xiàn)高斯分布擬合

    Python模擬實(shí)現(xiàn)高斯分布擬合

    當(dāng)我們繪制一個(gè)數(shù)據(jù)集(如直方圖)時(shí),圖表的形狀就是我們所說(shuō)的分布,最常見(jiàn)的連續(xù)值形狀是鐘形曲線,也稱(chēng)為高斯分布或正態(tài)分布,下面我們就來(lái)利用Python模擬實(shí)現(xiàn)一下高斯分布吧
    2023-12-12
  • Python DataFrame Rank詳解

    Python DataFrame Rank詳解

    在數(shù)據(jù)分析中,pandas庫(kù)的DataFrame對(duì)象的rank()方法可用于計(jì)算數(shù)據(jù)排名,處理重復(fù)值并支持多種參數(shù)定制排名規(guī)則,如ascending、axis、numeric_only等,是數(shù)據(jù)分析和競(jìng)賽中的有力工具
    2024-09-09
  • python中os庫(kù)的具體使用

    python中os庫(kù)的具體使用

    本文介紹了Python中os庫(kù)的一些常見(jiàn)功能,包括獲取和改變工作目錄、列出目錄內(nèi)容、創(chuàng)建和刪除目錄等,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • numpy中以文本的方式存儲(chǔ)以及讀取數(shù)據(jù)方法

    numpy中以文本的方式存儲(chǔ)以及讀取數(shù)據(jù)方法

    今天小編就為大家分享一篇numpy中以文本的方式存儲(chǔ)以及讀取數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • Python中的類(lèi)屬性與實(shí)例屬性區(qū)別詳解

    Python中的類(lèi)屬性與實(shí)例屬性區(qū)別詳解

    這篇文章主要介紹了Python中的類(lèi)屬性與實(shí)例屬性區(qū)別詳解,類(lèi)屬性是在類(lèi)中定義的屬性,它是和這個(gè)類(lèi)所綁定的,這個(gè)類(lèi)中的所有對(duì)象都可以訪問(wèn),實(shí)例屬性是與類(lèi)的實(shí)例相關(guān)聯(lián)的數(shù)據(jù)值,是這個(gè)實(shí)例私有的,需要的朋友可以參考下
    2023-08-08

最新評(píng)論