1

Ich versuche, Fragen zu bekommen, mit Amazon SQS arbeiten, aber Aufgaben werden nicht ausgeführt. Allerdings laufen Meine Aufgaben aus der Box mit rabbitmqWie bekomme ich Amazon SQS mit Django Sellerie arbeiten

hier sind die Links habe ich versucht haben (unter anderem)

Celery with Amazon SQS

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

Sie scheinen ziemlich datiert zu werden. Ich auf meine Signale erhalte keine Nachrichten empfangen, wenn ich in die amazon-Konsole anmelden, aber ich sehe die Sellerie logs Aktivität zeigt sie mit Amazon kommunizieren

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')] 

meine Einstellungen

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' 
    }, 
} 

Jede Hilfe sind enorm

Antwort

1

würde geschätzt habe ich Django + Sellerie mit den folgenden Einstellungen mit SQS arbeiten:

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-' 
} 

Haben Sie Ihre AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY angegeben?

Ich fand auch, dass ich sqs. vor meinem Regionsnamen setzen musste.

+0

Hallo @Isaac, das Problem ist, ich brauche AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY für S3 gesetzt, so dass ich die s3 Benutzer zugreifen. und für den Broker ich angenommen BROKER_USER = 'xxx' BROKER_PASSWORD = 'xxxxx/xxxx' ist, wo ich meinen Zugangsschlüssel und ID. Ihr Punkt, die sqs vor der Region zu setzen, ist das einzige, was ich nicht ausprobiert habe, ich werde direkt darauf eingehen und Sie wissen lassen, ob es funktioniert –

+0

@ TawandaMinya Hey, hat es funktioniert? :) Wenn ja, bitte akzeptiere meine Antwort. –

+0

Hallo, Habe noch keine Chance bekommen zu testen. Aber wenn ich es tue wird –

Verwandte Themen