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

django中celery的定時任務(wù)使用

 更新時間:2023年09月19日 14:53:21   作者:Li- Li  
這篇文章主要介紹了django中celery的定時任務(wù)使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

話不多說言歸正傳

1.celery 的介紹

1.1celery的基本介紹

celery是基于python實(shí)現(xiàn)的一個異步任務(wù)的調(diào)用工具,同時還是一個任務(wù)隊(duì)列,主要用于處理耗時的任務(wù)。

celery也被稱為芹菜。

celery架構(gòu)由三個模塊組成:消息中間件,任務(wù)執(zhí)行單元和任務(wù)執(zhí)行結(jié)果儲存 組成。

其實(shí)那在剛接觸的時候小編的理解是 :

老板把地皮交給包工頭去干  讓包工頭把房子建好  然后包工頭找了工人    把任務(wù)分配給工人讓工人去干       最后工人蓋好房子老板驗(yàn)收(這是小編自己的理解也就適合入門)

1.2什么是celery beat

celery支持定時任務(wù),設(shè)定好任務(wù)的執(zhí)行時間,

celery就會定時自動幫你執(zhí)行, 這個定時任務(wù)模塊叫celery beat

2.celery定時任務(wù)的配置

__init__.py

里面主要是celery初始化配置

from datetime import timedelta
from celery import Celery
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "自己的項(xiàng)目名.settings")
django.setup()
celery_app = Celery('mycelery')
#讀取celery 的配置
celery_app.config_from_object('celery_task.config')
# 定時任務(wù)
                             # 文件夾名.文件名
celery_app.autodiscover_tasks(['celery_task.times'])
celery_app.conf.update(
    CELERYBEAT_SCHEDULE={
        'sum-task': {
             # 文件夾名.文件名.方法名
            'task': 'celery_task.times.my_con',
             # 多少秒執(zhí)行一次(eg:5秒一執(zhí)行)
            'schedule':  timedelta(seconds=5),
             # 這是傳入my_con方法中的參數(shù)
            'args': (5, 6)
        },
        'sum-task1': {
            'task': 'celery_task.times.my_print',
            'schedule':  timedelta(seconds=3),
            'args': ()
        },
    }
)

config.py

"""
    celery 配置
"""
消息中間件 broker
BROKER_URL = 'redis://xx.xx.xx.xx:6379/11'
任務(wù)結(jié)果存儲 results  backend
    CELERY_RESULT_BACKEND = 'redis://xx.xx.xx.xx:6379/12'
    # 時區(qū)
    CELERY_TIMEZONE = 'Asia/Shanghai'
    # 導(dǎo)入指定的任務(wù)模塊
    CELERY_IMPORTS = (
        'celery_task.tasks'
    )

task.py 里面寫的是異步任務(wù)就不展示了

times.py

里面寫的是定時任務(wù)

# 定時任務(wù)
import time
from celery_task import celery_app
@celery_app.task()
def my_con(x,y):
    print(x,y)
    print('x和y相加')
    return x+y
@celery_app.task()
def my_print():
    print('22222222')

3.celery 啟動命令

異步任務(wù)的啟動命令:celery -A 任務(wù)名 worker -l info -P eventlet

定時任務(wù)的啟動命令:celery -A 任務(wù)名 beat -l info

注意:要先啟動異步任務(wù),在啟動定時任務(wù)

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論