Flask Celery 非同步任務

2022-09-07 06:51:07 字數 1330 閱讀 8960

pip install redis

pip install celery

之所以要安裝redis,是因為需要redis作為celery的訊息中介軟體

新建乙個celery_fun.py作為celery的配置檔案,並把所有相關方法放進此py。

# **********==== create celery **********====

from celery import celery

# 配置

redis_url = f'redis://:@:/'

# 初始化celery

broker=redis_url,

backend=redis_url

)

先在celery.py定義需要使用celery的函式。

def add_active(active_info):

"""非同步新增資訊

:param active_info:

:return:

"""# pymongo 不是程序安全,所以子程序需要建立自己的連線

mongo = mongoclient()

mongo.add_data(mongo_active_task, active_info)

mongo.close()

在flask裡介面進行呼叫

@assist.route('add_active_info', methods=['post'])

def add_active_info():

"""新增資訊"""

return_result=}

# 呼叫celery

celery_result = add_active.delay(active_info)

return_result['ret_data']['celery_id'] = celery_result.id

return jsonify(),200

可以提供乙個介面查詢任務的狀態

def get_celery_state():

info = request.get_json()

celery_id = info.get('celery_id')

summary =

return jsonify(summary), 200

bind為true,會傳入self給被裝飾的方法,這個引數會讓 celery 將 celery 本身傳入

@celery.task(bind=true)
redis需要開啟服務

啟動flask

Flask celery非同步任務佇列的使用

celery非同步任務佇列 目錄結構樹 配置檔案config.py 設定中間人位址 broker url redis 主main.py import sys import os from celery import celery from flask import flask from flask ...

flask celery 設定定時任務

目前專案用的flask,需要做些定時任務,利用celery,redis,瞎折騰了很久,勉強能實現,做下記錄。專案簡單結構 init pytasks.py其他 from flask import flask from celery import celery 這是flask文件推薦的例項celery應...

非同步 非同步任務

非同步任務 記錄一下學習完springboot後進行使用非同步方法時的筆記 service層 author yesijie date 2019 11 29 15 25 service public class asyncc catch interruptedexception e system.ou...