rabbitmq 当检索一个带有“reply_to”的任务的结果时,它返回一个结果元组,并显示“收到并删除了未知消息,错误的目的地?!?”

rhfm7lfc  于 2023-08-05  发布在  RabbitMQ
关注(0)|答案(1)|浏览(101)

我使用celery和RabbitMq创建了一个简单的任务,并将任务的结果发送到“结果”队列,当我连接到这个队列时,它会对任务的结果进行处理,它会说“收到并删除了未知消息”。错误的目的地?!?”和“已交付”:False,'exchange':'','routing_key':'结果'}
我想要的任务结果来处理他们我怎么得到这个?我知道我的路由是有问题的,做任何我可以,但达到什么。
这是我在运行服务器时得到的结果:

WARNING/MainProcess] Received and deleted unknown message.  Wrong destination?!?

The full contents of the message body was: body: {'task_id': '84913264-6294-4c8d-9eff-927d54f7d256', 'status': 'SUCCESS', 'result': 25, 'traceback': None, 'children': []} (121b)
{content_type:'application/json' content_encoding:'utf-8'
  delivery_info:{'consumer_tag': 'None4', 'delivery_tag': 14, 'redelivered': False, 'exchange': '', 'routing_key': 'result'} headers={}}

字符串
谢谢-谢谢-慈悲

mnemlml8

mnemlml81#

您的目的是在rabbitmq中发送特定于结果的队列。请使用reply_to参数。'apply_celery.send_task'或'task.apply_asyncron'函数具有'reply_to'参数。
此参数为返回结果的队列给予名称。
同时你必须设置参数'backend_url'和'result_serializer'。我认为你应该明确地给予一个'broken_url'和'backend_url'。另外,你应该确保给定一个'result_serializer'。
查看文档:backend_url或app.Celery
如果问题仍然存在,您可以控制task_ignore_result

相关问题