【问题标题】:Unable to inspect Celery with SQS Backend无法使用 SQS 后端检查 Celery
【发布时间】:2017-06-09 00:46:37
【问题描述】:

我使用 Celery 来处理异步任务,并且我使用 Amazon 上的 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 请求的那个,我不确定那是什么。我该如何解决这个问题?

【问题讨论】:

  • 你试过rdb调试吗?

标签: python celery amazon-sqs


【解决方案1】:

根据this github问题:

基本上你不能检查集群中任何woker的状态。

由于 (from the docs):

SQS 尚不支持工作人员远程控制命令。

所以现在这似乎是不可能的 - 你最好的选择(以及我如何解决导致我来到这里的问题)可能是使用 boto3 直接访问队列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-29
    • 2016-02-23
    • 2016-10-17
    • 1970-01-01
    • 2020-02-08
    • 2016-11-28
    • 1970-01-01
    • 2011-12-24
    相关资源
    最近更新 更多