我在docker设置中使用celery和redis作为两项服务。配置如下:
redis:
image: redis:latest
hostname: redis
ports:
- "0.0.0.0:6379:6379"
command:
--requirepass PASSWORD
celeryworker:
<<: *django
depends_on:
- redis
- postgres
command: "celery -E -A rhombus.taskapp worker --beat --scheduler redbeat.schedulers:RedBeatScheduler --loglevel INFO --uid taskmaster --concurrency=5"
当我尝试构建我的容器并在工作人员准备就绪后安排一些工作时,我得到一个例外
[2018-03-20 04:40:52,082: WARNING/Beat] redis.exceptions.ResponseError: NOAUTH Authentication required.
我一直无法弄清楚还有什么需要配置才能让这个设置正常工作。对该问题的一些见解和指导是可观的。
下面是完整的堆栈跟踪。
答案 0 :(得分:2)
如果你有redis的身份验证,那么URI应该采用这种格式。
broker_url = 'redis://user:password@redishost:6379/0'
您提到的URI不是有效的redis uri。如果你更新URI,它应该可以工作。
没有身份验证,uri应该是
broker_url = 'redis://redishost:6379/0'