tim*_*tim 8 python rabbitmq celery
我创建了vhost:
rabbitmqctl add_vhost test
Run Code Online (Sandbox Code Playgroud)
然后用户:
rabbitmqctl add_user user 123456
Run Code Online (Sandbox Code Playgroud)
然后我获得该用户的权限:
rabbitmqctl set_permissions -p test user "test" "test" "test"
Run Code Online (Sandbox Code Playgroud)
我在tasks.py中使用Celery:
app = Celery('tasks', broker='amqp://user:123456@localhost/test', backend='amqp://user:123456@localhost/test')
Run Code Online (Sandbox Code Playgroud)
然后我跑:
celery -A tasks worker --loglevel=info
Run Code Online (Sandbox Code Playgroud)
我有错误:
amqp.exceptions.AccessRefused: Exchange.declare: (403) ACCESS_REFUSED - access to exchange 'celeryev' in vhost 'test' refused for user 'user'
Run Code Online (Sandbox Code Playgroud)
如何解决?
old*_*und 10
在这里看一下set_permissions:https://www.rabbitmq.com/man/rabbitmqctl.1.man.html#Access%20control
当您调用set_permissions时,您正在通过"test"进行配置,读取和写入,因此您的用户将只能使用名称为"test"的队列/交换
另外,请看一下这个链接:https://www.rabbitmq.com/access-control.html
如果您仍然有错误,请检查您是否有正确的双引号(发生在我身上)
".*"
Run Code Online (Sandbox Code Playgroud)
代替
“.*”
Run Code Online (Sandbox Code Playgroud)
可以肯定的是,在您的 vhostpath 中列出用户的权限(默认为 /)
rabbitmqctl list_permissions -p /
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14710 次 |
| 最近记录: |