Celery/SQS 错误“没有名为 sqs 的模块”

问题描述 投票:0回答:3

我无法配置 Celery 以使用 SQS。我按照此链接上的说明操作:http://docs.celeryproject.org/en/latest/getting-started/brokers/sqs.html

这是堆栈跟踪。

[2018-02-21 12:27:25,073:CRITICAL/MainProcess] 不可恢复的错误:ModuleNotFoundError(“没有名为‘sqs’的模块”,)12:27:25worker.1 |回溯(最近一次调用最后一次):12:27:25worker.1 |文件“/Users/logan/.virtualenvs/dolittle/lib/python3.6/site-packages/kombu/utils/objects.py”,第 42 行,位于 get 12:27:25worker.1 |返回 obj.dict[self.name] 12:27:25worker.1 |关键错误:“后端”

我使用的是Python 3.6。

依赖关系:

boto==2.46.1
celery==4.0.2

我错过了什么吗?

python flask celery amazon-sqs
3个回答
3
投票

它也使用 SQS 作为结果后端。例如,您可以设置

CELERY_RESULT_BACKEND = None


0
投票

您需要按照新文档安装

celery[sqs]

https://docs.celeryproject.org/en/stable/getting-started/backends-and-brokers/sqs.html

通过PIP安装时,如果您遇到以下问题:

FileNotFoundError:[Errno 2]没有这样的文件或目录:'curl-config'

安装 libcurl 开发包:

基于 Debian :

sudo apt install libcurl4-openssl-dev libssl-dev

Centos/Fedora:

dnf install libcurl-devel

0
投票

回答@Anton 在@Sander van Leeuwen 帖子评论中提出的问题;

据我了解,SQS 不是一个保存和接收结果的系统。您应该考虑使用 Elasticache 解决方案。因此,结果后端应设置为

None
而不是 SQS 地址(除非您有某种类似 Elasticache 的解决方案来保存结果)。

© www.soinside.com 2019 - 2024. All rights reserved.