选择中间人
中间人是在创建Celery实例时必须给定的。中间人通过Celery类实例化时的参数broker
来定义,一般为中间人的连接地址,以下给出常用的中间人的连接地址书写方法。
- RabbitMQ,
amqp://用户名:密码@主机:端口//
。 - Redis,
redis://:密码@主机:端口/数据库号
。
在Redis上的广播信息默认所有虚拟主机可见,如果只想让活动主机接收,则需要给消息添加前缀:BROKER_TRANSPORT_OPTIONS = {'fanout_prefix': True}
。
如果任务没有在规定时间内确认接收,则会被重新委派给另一个工作进程,这个超时时间可以通过BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 3600}
来配置,默认为1小时。