Hun*_*yen 7 django amazon-sqs celery python-3.x
我已经将celery.py配置为其文档,但是我将celery broker URL放入了AWS SQS,但无法启动它。当我运行芹菜工人时,我得到ValueError为:
__call__中的第244行,文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/bin/base.py”
ret = self.run(* args,** kwargs)
在运行中,文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/bin/worker.py”,第255行
** kwargs)
__init__中的文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/worker/worker.py”,第99行
self.setup_instance(** self.prepare_args(** kwargs))
在setup_instance中的第120行,文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/worker/worker.py”
self._conninfo = self.app.connection_for_read()
文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/app/base.py”,第752行,位于connection_for_read
返回self._connection(URL或self.conf.broker_read_url,** kwargs)
_connection中的文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/celery/app/base.py”,第828行
'broker_connection_timeout',connect_timeout
__init__中的文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/kombu/connection.py”,第181行
url_params = parse_url(主机名)
在parse_url中的文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/kombu/utils/url.py”,第34行
方案,主机,端口,用户,密码,路径,查询= _parse_url(url)
文件“ /Users/abd/Desktop/proj-aws/lib/python3.6/site-packages/kombu/utils/url.py”,第52行,位于url_to_parts中
parts.port,
文件“ /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/urllib/parse.py”,端口167行
端口= int(端口10)
ValueError:int()以10为底的无效文字:“ xi”
我一直在环顾四周,但似乎不知道如何解决此问题。这个你能帮我吗!非常感激!
小智 9
我遇到了同样的问题,并解决了它。
首先检查(很有可能)您的 AWS 访问密钥 ID 或秘密密钥在某处包含“xi/”,并且您拥有:
BROKER_URL = "sqs://%s:%s@" % (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
Run Code Online (Sandbox Code Playgroud)
如果是这样,那么您的问题出在 URL 不安全键上,修复方法是:
BROKER_URL = 'sqs://{0}:{1}@'.format(
urllib.parse.quote(AWS_ACCESS_KEY_ID, safe=''),
urllib.parse.quote(AWS_SECRET_ACCESS_KEY, safe='')
)
Run Code Online (Sandbox Code Playgroud)
注意:如果使用 Python 2.x,请使用 urllib.quote
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |