我使用Celery来处理异步任务,并且我在亚马逊上使用SQS作为我的消息服务器。我的任务突然停止处理,当我用:
检查Celery队列时from celery.task.control import inspect
i = inspect()
i.scheduled()
我收到了错误:
SQSError: SQSError: 400 Bad Request
<?xml version="1.0"?><ErrorResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><Error><Type>Sender</Type><Code>InvalidParameterValue</Code><Message>Can only include alphanumeric characters, hyphens, or underscores. 1 to 80 in length</Message><Detail/></Error><RequestId>adbc0bc9-d1e2-5ab7-bd59-5a7a20cb876c</RequestId></ErrorResponse>
造成这种情况的原因是什么?显然,这意味着我向其传递了一个无效的参数,但由于Celery是生成SQS请求的参数,我不确定它是什么。我该如何解决这个问题?
答案 0 :(得分:0)
根据this github问题:
基本上你无法检查群集中任何一个woker的状态。
由于(from the docs):
这一事实SQS尚不支持工作人员远程控制命令。
所以现在这似乎不可能 - 你最好的选择(以及我如何解决我的问题导致我在这里)可能是使用boto3直接访问队列。