引言
1 | 在开发的过程中,总会遇到异步完成某个操作的需求,选择会很多,说一下在python编程过程中如何实现异步任务,让你优雅的完成 |
初始celery
1 | 任务调度利器,是基于Python开发的分布式任务队列。它支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度。 |
单独使用celery
需求
1 | 定时往文件中写入和在程序中异步添加任务往文件中写入 |
编写tasks
1 | # coding=utf-8 |
celeryconfig配置文件
1 | 这个比较重要,关系到启动 |
note
1 | 如果使用redis,建议使用CELERY_QUEUES和CELERY_ROUTES两个配置项,可以让你使不用应用的任务区分开,不然如果用同一个 |
启动
1 | celery worker --loglevel=debug --config=celeryconfig 负责执行任务 |
如何在程序中添加任务
1 | from tasks import test |
在django中使用celery
需求
1 | 同上 |
优点
1 | 能方便的调用model、settings等,方便数据库操作。 |
tasks
1 | # coding=utf-8 |
配置文件
1 | 把上边的配置文件复制到settings中,同时在INSTALLED_APPS加入djcelery,记 |
添加celety.py文件
1 | 在与app同级目录下添加celety.py文件,如下: |
程序中调用
1 | 同上 |
启动
1 | python manage.py celery worker --loglevel=info |