Rabbitmq 发送任务仅适用于特定用户
设置:芹菜4.1、RabbitMQ 3.6.1(作为代理)、Redis(作为后端,此处不相关) 有两个用户:Rabbitmq 发送任务仅适用于特定用户,rabbitmq,celery,amqp,celery-task,rabbitmqctl,Rabbitmq,Celery,Amqp,Celery Task,Rabbitmqctl,设置:芹菜4.1、RabbitMQ 3.6.1(作为代理)、Redis(作为后端,此处不相关) 有两个用户: admin\u用户,权限为* 远程用户具有ack权限 admin\u user可以触发任务,芹菜工人使用它来处理任务 remote\u user只能触发一种类型的任务-ack,并在专用的ack队列中排队,该队列随后被ack工作者(由admin\u user使用) 远程用户通过以下代码发送任务: from celery import Celery app = Celery('remo
,权限为admin\u用户
*
具有远程用户
权限ack
admin\u user
可以触发任务,芹菜工人使用它来处理任务
remote\u user
只能触发一种类型的任务-ack
,并在专用的ack
队列中排队,该队列随后被ack
工作者(由admin\u user
使用)
远程用户通过以下代码发送任务:
from celery import Celery
app = Celery('remote', broker='amqp://remote_user:remote_pass@<machine_ip>:5672/vhost')
app.send_task('ack', args=('a1', 'a2'), queue='ack', route_name='ack')
但是我不想给远程机器admin\u用户
权限。
知道我能做什么吗?解决了,
我想API已更改,但为了保持RabbitMQ的当前权限,我必须使用以下路径:
旧芹菜配置文件py:(芹菜3.1)
芹菜\u config.py:(芹菜4.1)
运行任务。py:
from celery import Celery
app = Celery('remote', broker='amqp://remote_user:remote_pass@<machine_ip>:5672/vhost')
app.config_from_object('celery_config')
app.send_task('ack_task', args=('a1', 'a2'))
从芹菜进口芹菜
app=芹菜('remote',broker='amqp://remote_user:remote_pass@:5672/vhost')
app.config_from_对象('celery_config'))
app.send_task('ack_task',args=('a1','a2'))
已解决,
我想API已更改,但为了保持RabbitMQ的当前权限,我必须使用以下路径:
旧芹菜配置文件py:(芹菜3.1)
芹菜\u config.py:(芹菜4.1)
运行任务。py:
from celery import Celery
app = Celery('remote', broker='amqp://remote_user:remote_pass@<machine_ip>:5672/vhost')
app.config_from_object('celery_config')
app.send_task('ack_task', args=('a1', 'a2'))
从芹菜进口芹菜
app=芹菜('remote',broker='amqp://remote_user:remote_pass@:5672/vhost')
app.config_from_对象('celery_config'))
app.send_task('ack_task',args=('a1','a2'))
CELERY_ROUTES = {
'ack_task': {
'exchange': 'ack',
'exchange_type': 'direct',
'routing_key': 'ack'
}
}
from celery import Celery
app = Celery('remote', broker='amqp://remote_user:remote_pass@<machine_ip>:5672/vhost')
app.config_from_object('celery_config')
app.send_task('ack_task', args=('a1', 'a2'))