一路狂飙

celery介绍

celery 简介

celery是一个异步执行工具,主要用于异步执行一些比较长的任务时用到。

简单的用法

step 1. 创建一个tasks.py

# tasks.py
import time
from celery import Celery

celery = Celery('tasks', broker='redis://127.0.0.1:6379/0')

@celery.task
def sendmail(mail):
    print('sending mail to %s...' % mail['to'])
    time.sleep(2.0)
    print('mail sent.')


@celery.task
def hello():
    return 'google'

step 2. 启动celery后台进程

celery -A tasks work -l debug

step 3. 在另外的程序中来引用这个文件,并调用里面的函数

from tasks import sendmail
sendmail.delay(test@qq.com)

update @ 2018-05-31

在flask中,调用的时候,会遇到需要app上下文的东西,也有很多人去各种构造各种场景。 我认为最好的方式就是解耦,celery调用的时候,一切方法都要做到跟flaskapp的上下文无关,中间做好一层桥接就行了。

参考资料

  1. celery有什么难理解的?
  2. celery遇到的一些坑。