Flask Celery Redis簡單操作

2021-10-07 02:46:38 字數 1752 閱讀 5578

使用celery可以使得任務非同步執行,在處理複雜或耗時長的任務時經常需要,廢話不多說,直接進入正題。

結構樹

安裝各種包

pip install celery

pip install radis

_init_.py檔案中新增celery例項的建立函式

# 非同步佇列

taskbase = celery.task

class contexttask(taskbase):

abstract = true

def __call__(self, *args, **kwargs):

return taskbase.__call__(self, *args, **kwargs)

celery.task = contexttask

return celery

celery_broker_url = 'redis://localhost:6379/0'

celery_result_backend = 'redis://localhost:6379/0'

同級目錄建立乙個tasks.py指令碼

from random import randrange

from time import sleep

from . import make_celery

from .models import pic_data

from .ext import db

celery = make_celery()

@celery.task(name='task1')

def data_deal():

# 下面是要執行的非同步操作

t = randrange(0, 2)

pic = pic_data()

pic.name = 'wyman{}'.format(t)

db.session.add(pic)

db.session.commit()

檢視中呼叫

@blue.route('/', methods=['post', 'get'])

def index():

if request.method == 'get':

pic_list = pic_data.query.all()

return render_template('base.html', pic_list=pic_list)

# 呼叫celery的task任務

data_deal.delay()

return redirect(url_for('blue.index'))

然後首先開啟flask專案,再開啟celery,-a後面跟的是專案中celery例項的位置

python manage.py runserver -r
然後和預期一樣失敗了,原因大概可能是因為windows不太相容,但可以裝乙個包並在啟動celery時指定來解決

pip install eventlet
下面是成功執行時的圖

flask celery redis實現非同步任務

2 搭建目錄 3 啟動專案測試 pip3 install flask pip3 install redis 3.5.3 pip3 install celery 5.0.0 1.2.1 安裝 1 安裝gcc yum install y gccwget tar zxvf redis 5.0.3.tar....

golang redis之set型別簡單操作

1 安裝redigo go get github.com garyburd redigo redis2 連線redis 3 命令執行 n,err c.do sadd key value 寫 result,err redis.values c.do smembers key 讀 4 set型別常見操作...

python對memcached的簡單操作

python memcached模組原生支援集群操作,其原理是在記憶體維護乙個主機列表,且集群中主機的權重值和主機在列表中重複出現的次數成正比。主機 權重 1.1.1.1 11.1 1.2 21.1 1.31 那麼在記憶體中主機列表為 host list 1.1.1.1 1.1.1.2 1.1.1....