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

python celery beat實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼

 更新時(shí)間:2024年03月04日 14:44:08   作者:埃菲爾沒有塔尖  
在日常工作中,我們常常會(huì)用到需要周期性執(zhí)行的任務(wù),本文主要介紹了python celery beat實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下

在Celery在python中的應(yīng)用除了實(shí)現(xiàn)異步任務(wù)(async task)外也可以執(zhí)行定時(shí)任務(wù)(beat)

1.Celery定時(shí)任務(wù)是什么?

Celery默認(rèn)任務(wù)單元由任務(wù)生產(chǎn)者觸發(fā),但有時(shí)可能需要其自動(dòng)觸發(fā), 而beat進(jìn)程正是負(fù)責(zé)此類任務(wù),能夠自動(dòng)觸發(fā)定時(shí)/周期性任務(wù).

在這里插入圖片描述

只需要在配置中配置好周期任務(wù),然后在運(yùn)行一個(gè)周期任務(wù)觸發(fā)器(beat)即可

2.直接上代碼

目錄結(jié)構(gòu)如下:

在這里插入圖片描述

celery_app.py 文件代碼如下:

import os
import sys
import time
import celery
from pathlib import Path
from datetime import timedelta

# 實(shí)例化celery對(duì)象
app = celery.Celery(
    "celery_worker",
    backend="redis://:@127.0.0.1:6379/4",
    broker="redis://:@127.0.0.1:6379/5",
    include=[
        "celery_worker.email.tasks"
    ],
)

# celery beat 定時(shí)任務(wù)
beat_schedule = {
    'periodic_task-every-minute': {
        # 'task': 'celery_worker.email.tasks.add',
        'task': 'chain.send_chains',
        'schedule': timedelta(seconds=10),
        'args': (11, 22)
    },
}

# 配置文件
app.conf.update(
    task_serializer="json",
    result_serializer="json",
    accept_content=["json"],
    task_default_queue="normal",
    timezone="Asia/Shanghai",
    enable_utc=False,
    task_ignore_result=True,
    redis_max_connections=100,
    result_expires=3600,
    beat_schedule=beat_schedule
)

"""
celery -A celery_worker.celery_app worker -l info
celery -A celery_worker.celery_app beat
"""

email.tasks.py 代碼如下:

from loguru import logger
# 模塊化之后
from celery_worker.celery_app import app

@app.task(name='chain.send_chains')
def add(x, y):
    logger.info(f'number_add 進(jìn)來了...x:{x}, y:{y}')
    return x + y

然后順序啟動(dòng) worker 和 beat 定時(shí)任務(wù)(記得兩個(gè)都必須啟動(dòng))

執(zhí)行如下命令:

celery -A celery_worker.celery_app worker -l info   (啟動(dòng)干活的人)
celery -A celery_worker.celery_app beat  (啟動(dòng)定時(shí)任務(wù) 類似crontab)

效果如下:

在這里插入圖片描述

在這里插入圖片描述

其實(shí)簡單的來說就是這點(diǎn)代碼:

beat_schedule = {
    'periodic_task-every-minute': {
        # 'task': 'celery_worker.email.tasks.add',
        'task': 'chain.send_chains',
        'schedule': timedelta(seconds=10),
        'args': (11, 22)
    },
}

periodic_task-every-minute 這個(gè)就是定時(shí)任務(wù)的名字 ,隨便起無所謂。

重點(diǎn)是這個(gè) "task",經(jīng)過實(shí)際測試,如果這個(gè)工作函數(shù)沒有指定name 名字的話,默認(rèn)就是 函數(shù)路徑+函數(shù)名稱 也就是 'celery_worker.email.tasks.add'。

但是如果這函數(shù)添加name屬性值的話 直接用名字也是可以的,也就是'chain.send_chains'。

到此這篇關(guān)于python celery beat實(shí)現(xiàn)定時(shí)任務(wù)的示例代碼的文章就介紹到這了,更多相關(guān)python celery beat定時(shí)任務(wù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pytorch用Tensorboard來觀察數(shù)據(jù)

    Pytorch用Tensorboard來觀察數(shù)據(jù)

    這篇文章主要介紹了Pytorch用Tensorboard來觀察數(shù)據(jù),上一篇文章我們講解了關(guān)于Pytorch?Dataset的數(shù)據(jù)處理,這篇我們就來講解觀察數(shù)據(jù),下面具體相關(guān)資料,需要的朋友可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • python中的unittest框架實(shí)例詳解

    python中的unittest框架實(shí)例詳解

    在本篇文章里小編給大家分享的是一篇關(guān)于python中的unittest框架實(shí)例詳解內(nèi)容,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • python熱力圖實(shí)現(xiàn)簡單方法

    python熱力圖實(shí)現(xiàn)簡單方法

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python熱力圖實(shí)現(xiàn)簡單方法,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Python 列表list使用介紹

    Python 列表list使用介紹

    這篇文章主要介紹了Python 列表list使用介紹,需要的朋友可以參考下
    2014-11-11
  • 用1行Python代碼識(shí)別身份證信息實(shí)例

    用1行Python代碼識(shí)別身份證信息實(shí)例

    這篇文章主要介紹了用1行Python代碼識(shí)別身份證信息實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • Python數(shù)據(jù)分析之使用scikit-learn構(gòu)建模型

    Python數(shù)據(jù)分析之使用scikit-learn構(gòu)建模型

    這篇文章主要介紹了Python數(shù)據(jù)分析之使用scikit-learn構(gòu)建模型,sklearn提供了model_selection模型選擇模塊、preprocessing數(shù)據(jù)預(yù)處理模塊、decompisition特征分解模塊,更多相關(guān)內(nèi)容需要朋友可以參考下面文章內(nèi)容
    2022-08-08
  • pandas.dataframe中根據(jù)條件獲取元素所在的位置方法(索引)

    pandas.dataframe中根據(jù)條件獲取元素所在的位置方法(索引)

    今天小編就為大家分享一篇pandas.dataframe中根據(jù)條件獲取元素所在的位置方法(索引),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • 分享10提高?Python?代碼的可讀性的技巧

    分享10提高?Python?代碼的可讀性的技巧

    這篇文章主要介紹了分享10提高?Python?代碼的可讀性的技巧,本文介紹20個(gè)常用的Python技巧來提高代碼的可讀性,并能幫助你節(jié)省大量時(shí)間,下面的技巧將在你的日常編碼練習(xí)中非常實(shí)用,需要的朋友可以參考一下
    2022-03-03
  • Python中的請(qǐng)求重試策略深入探討

    Python中的請(qǐng)求重試策略深入探討

    在網(wǎng)絡(luò)通信中,由于各種原因,請(qǐng)求可能會(huì)失敗,為了增加程序的健壯性和可靠性,實(shí)現(xiàn)一個(gè)優(yōu)雅的請(qǐng)求重試策略是至關(guān)重要的,本文將深入探討如何在Python中實(shí)現(xiàn)優(yōu)雅的請(qǐng)求重試,通過豐富的示例代碼和詳細(xì)的解釋,幫助大家更好地理解和應(yīng)用重試機(jī)制
    2024-01-01
  • Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法

    Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法

    隊(duì)、棧和鏈表一樣,在數(shù)據(jù)結(jié)構(gòu)中非?;A(chǔ)一種數(shù)據(jù)結(jié)構(gòu),同樣他們也有各種各樣、五花八門的變形和實(shí)現(xiàn)方式。這篇文章主要介紹了Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法,需要的朋友可以參考下
    2019-07-07

最新評(píng)論