你如何让亚马逊 SQS 与 Django celery 一起工作

塔旺达

我试图让 ques 与 Amazon SQS 一起工作,但任务没有运行。但是我的任务用rabbitmq开箱即用

这是我尝试过的链接(除其他外)

芹菜与亚马逊 SQS

https://www.caktusgroup.com/blog/2011/12/19/using-django-and-celery-amazon-sqs/

他们似乎已经过时了。根据我的提示,当我登录到 amazon 控制台时,我没有收到任何消息,但我看到 celery 日志有活动显示它们正在与亚马逊通信

    DEBUG b'<?xml version="1.0"?><ReceiveMessageResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/"><ReceiveMessageResult/><ResponseMetadata><RequestId>f8d10c14-99f7-520b-a58d-5d2cc203ad8b</RequestId></ResponseMetadata></ReceiveMessageResponse>'
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Method: GET
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Path: /967610578225/transfer_files
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Data: 
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Headers: {}
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Host: eu-west-1.queue.amazonaws.com
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Port: 443
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Params: {'Version': '2012-11-05', 'Action': 'ReceiveMessage', 'WaitTimeSeconds': 0, 'MaxNumberOfMessages': 4}
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG Token: None
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log DEBUG CanonicalRequest:
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log  GET
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log  /967610578225/transfer_files
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log  Action=ReceiveMessage&MaxNumberOfMessages=4&Version=2012-11-05&WaitTimeSeconds=0
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log  host:eu-west-1.queue.amazonaws.com
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log  x-amz-date:20170307T065652Z
    Mar 7 08:56:52 ip-172-31-41-253 e-celery-worker.log
, 'Authorization': 'AWS4-HMAC-SHA256 Credential=xxxxxx/20170307/eu-west-1/sqs/aws4_request,SignedHeaders=host;x-amz-date,Signature=xxxxxx', 'User-Agent': 'Boto/2.45.0 Python/3.4.3 Linux/4.1.17-22.30.amzn1.x86_64', 'X-Amz-Date': '20170307T065652Z'}
    Mar 7 08:56:52 ip-172-31-41-253 eright-celery-worker.log DEBUG Response headers: [('Server', 'Server'), ('Date', 'Tue, 07 Mar 2017 06:56:52 GMT'), ('Content-Type', 'text/xml'), ('Content-Length', '240'), ('Connection', 'keep-alive'), ('x-amzn-RequestId', 'bbad9a79-f65e-568d-aaeb-cb41adaa390d')]

我的设置是

BROKER_TRANSPORT = 'sqs'
BROKER_TRANSPORT_OPTIONS = {
    'region': 'eu-west-1',
    'polling_interval': 2,
    'visibility_timeout': 3600,
}
BROKER_USER = 'xxx'
BROKER_PASSWORD = 'xxxxx/xxxx'

CELERY_IMPORTS = (
    'apps.files.tasks',
)

CELERY_QUEUES = {
    'default': {
        'binding_key': 'default'
    },

    # Files
    'files_copy_paste': {
        'binding_key': 'files.copy.paste'
    },
}

任何帮助将不胜感激

艾萨克·乔丹

我让 Django + Celery 使用以下设置与 SQS 一起工作:

import urllib.parse

# Defined in environment settings
AWS_ACCESS_KEY_ID = os.environ["AWS_ACCESS_KEY_ID"] 
AWS_SECRET_ACCESS_KEY = os.environ["AWS_SECRET_ACCESS_KEY"]

CELERY_BROKER_URL = 'sqs://{0}:{1}@'.format(
    urllib.parse.quote(AWS_ACCESS_KEY_ID, safe=''),
    urllib.parse.quote(AWS_SECRET_ACCESS_KEY, safe='')
)

CELERY_BROKER_TRANSPORT_OPTIONS = {
    'region': 'sqs.eu-west-1',
    'queue_name_prefix': 'celery-'
}

你有没有指定你的AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

我还发现我必须sqs.在我的地区名称之前加上

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Auth如何在Django和Discourse之间工作(一起工作)

来自分类Dev

如何使Django 3,渠道和uvicorn一起工作

来自分类Dev

Django中带有Celery的AWS SQS

来自分类Dev

如何使注释序列化程序与Django rest框架中的后期序列化程序一起工作?

来自分类Dev

hashmap如何与Integer作为键一起工作

来自分类Dev

如何使Webpack和Node一起工作?

来自分类Dev

平均负载如何与现代CPU一起工作?

来自分类Dev

JavaScript和JSF如何一起工作?

来自分类Dev

如何配置Spring和Angular一起工作

来自分类Dev

这种起重如何与料斗一起工作?

来自分类Dev

Jruby和OSGi-如何一起工作?

来自分类Dev

如何让Cabal和Nix一起工作

来自分类Dev

如何使onDragListener和onTouchListener一起工作?

来自分类Dev

扭曲如何与原子操作一起工作?

来自分类Dev

如何使Webpack和Node一起工作?

来自分类Dev

如何使Reader和ReaderT一起工作

来自分类Dev

试图了解混杂如何与BlueBird一起工作

来自分类Dev

如何使ExcelDNA与R.Net一起工作

来自分类Dev

我如何让jQuery与我一起工作?

来自分类Dev

如何使Apache POI和JAXB一起工作?

来自分类Dev

spark RangeBetween如何与降序一起工作?

来自分类Dev

Job queue如何与promise一起工作?

来自分类Dev

setState如何与备注中的反应一起工作

来自分类Dev

如何使Tkinter和Selenium一起工作

来自分类Dev

如何使Pynput的线程与转义序列一起工作?

来自分类Dev

std :: cout如何与char指针一起工作?

来自分类Dev

红宝石如何与数组数组一起工作

来自分类Dev

insertOrThrow如何与UNIQUE约束一起工作?

来自分类Dev

Jruby和OSGi-如何一起工作?