Python-celery介绍与快速上手

1.celery介绍:

  celery是一个基于Python开发的模块,可以帮助我们在开发过程中,对任务进行分发和处理。

             

详细介绍取自:Python之celery的简介与使用 - 简书 (jianshu.com)

celery官网:Celery - Distributed Task Queue — Celery 5.2.7 documentation (celeryq.dev)

celery中文网:简介 - Celery 中文手册 (celerycn.io)

 

2.环境搭建:

  安装celery: pip install celery

  安装broker:redis或radditMQ

  pip install redis / pika  

3.运行程序步骤:

一. 启动redis
二.启动worker
        进入当前目录(当前是s1.py)
            celery -A s1 worker --loglevel=info -P eventlet
            celery -A py文件名 worker --loglevel=日志等级(非必要选项)-P eventlet(windows用户需要加上的,否则有可能报错)
            注意:在加上-P eventlet之前,得先pip install eventlet

 

 

from celery import Celery
from celery.result import AsyncResult

app = Celery('celery_tasks', broker='redis://localhost:6379/0', backend='redis://localhost:6379/1')
"""
参数一: 任务名称(根据自己要求定义)
叁数二:连接 放任务 的队列
参数三:连接 放结果 的队列
默认使用的是 localhost 的 6379 端口中 0 数据库。( Redis 默认有 16 个数据库)
"""


# 函数一但被如此装饰,就意味着此函数将会是一个celery任务
@app.task
def sum(x, y):
    return x + y


@app.task
def sub(x, y):
    return x - y


####################### 函数调用 ###########################
result = sum.delay(4, 4)  # 意味着,将函数与参数,扔到任务队列中
result_id = result.id  # 获取任务id


result_object = AsyncResult(id=result_id, app=app)

print(result_object.status)  # 打印任务状态

 

posted on 2023-02-09 14:18  夜黎i  阅读(268)  评论(0)    收藏  举报

导航