在上一篇的简单示例中,我们将broker的配置入参到了Celery的实例化中,简单任务是可以的,复杂的任务,这样的写法不够美丽。celery提供了几种配置方法。
为了简要明了地展示,我们依然创建一个非常简单的celery项目,目录为:
celery_basic.py celery的初始化文件和消费者
celery_config.py celery的配置文件(celery的第二种配置方法所用)
do.py celery的生产者
第一种 使用app.conf.update()
从语法看,这个conf配置大概率是一个字典,调用字典的update方法即可加入新的配置。这个用法的重点是调用celery实例app
的方法,那么可以在celery的初始文件中配置,也可以在独立文件中进行配置,只要能引用到app就可以了。
celery_basic.py 内容
import time
from celery import Celery
# 初始化一个celer实例
app = Celery('celery_demo')
# 配置方法1 使用app.conf的update方法更新配置字典
app.conf.update(
broker_url = 'redis://127.0.0.1:6379/3',
result_backend = 'redis://127.0.0.1:6379/4'
)
@app.task
def send_msg(msg):
print('开始发送信息')
time.sleep(5)
print(f'{msg} - 信息发送完毕')
老规矩,celery -A celery_basic worker -l info -P eventlet
启动后,再执行do.py
就可以了看到任务运转起来了。
第二种 使用app.config_from_object
11