我使用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={}}
字符串
谢谢-谢谢-慈悲
1条答案
按热度按时间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