前期准备:celery,python3.6,rabbitmq。(安装教程网上有很多,这里就不写了)
3.7版本尝试报错,报错信息 from kombu.async.timer import Entry, Timer as Schedule, to_timestamp, logger
网上搜到的信息是 async在python3.7里是关键字?
确保rabbitmq已经启动
1.tasks.py -执行单元
from celery import Celery
import time
app = Celery()
@app.task
def add(x,y):
print('receive parameter')
print('start sleep')
time.sleep(10)
print('end sleep')
return x+y
~
2.启动worker,在task.py目录下执行下列命令,注意如果报错,tasks模块找不到,需要在worker的app.task后面添加当前文件所属模块 @app.task(name='user.views.tasks.add')
celery worker -A tasks -l info
3. 调用单元 main.py
import tasks
import time
print('start tasks')
tasks.add.delay(1,2)
print('end tasks')
ps:实现起来非常简单,在网上找解决方案的时候遇到了很多的问题,没有一个入门的示例,因此写了上面的demo,希望能给有需要的人提供帮助。