分布式异步任务框架celery
Celery是一个分布式异步任务队列/作业队列,可以用来处理长时间运行的任务。以下是一个使用Celery的基本示例:
首先,安装celery:
pip install celery
然后,创建一个目录结构如下:
project/
│
├── project/
│ ├── __init__.py
│ ├── tasks.py
│ ├── celery.py
│
└── config.py
在celery.py
中配置Celery:
# project/project/celery.py
from __future__ import absolute_import, unicode_literals
from celery import Celery
app = Celery('project', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0')
# Optional: type 'celery' program with tabs instead of spaces.
app.conf.update(result_extended=True)
if __name__ == '__main__':
app.start()
在tasks.py
中定义任务:
# project/project/tasks.py
from __future__ import absolute_import, unicode_literals
from .celery import app
@app.task
def add(x, y):
return x + y
在__init__.py
中初始化应用:
# project/__init__.py
from .celery import app as celery_app
__all__ = ('celery_app',)
最后,你可以使用Celery提交任务:
from project import tasks
result = tasks.add.delay(4, 4)
print(result.id) # 打印任务ID
要运行Celery worker,执行:
celery -A project.project worker -l info
这个示例展示了如何设置一个简单的Celery环境,定义一个任务,并且启动一个worker来执行任务。在实际应用中,你可能需要配置更多的选项,比如不同的消息代理(例如RabbitMQ),任务执行时的日志记录等级,以及后端存储任务结果的方式。
评论已关闭