2015-07-08 10 views
5

Meine Frage kurz abzufragen ist, aber ich denke, ist interessant:effektivste Weg, eine Amazon SQS-Warteschlange unter Verwendung von Node

Ich habe eine Warteschlange von Amazon SQS-Service, und ich bin Polling die Warteschlange jede Sekunde. Wenn es eine Nachricht gibt, verarbeite ich die Nachricht und gehe nach der Verarbeitung zurück zur Abfrage der Warteschlange.

Gibt es einen besseren Weg dafür ?, eine Art Trigger? oder welcher Ansatz Ihrer Meinung nach der Beste ist und warum.

Danke!

Antwort

1

Wie von Mircea erwähnt, ist langes Polling eine Option.

Wenn Sie nach einem "Auslöser" fragen, glaube ich, dass Sie etwas anderes suchen, als kontinuierlich SQS selbstständig abzufragen. Wenn das der Fall ist, würde ich vorschlagen, dass Sie sich AWS Lambda ansehen. Es ermöglicht Ihnen, Code in der Cloud zu setzen, die automatisch auf dem konfigurierten Ereignisse ausgelöst werden, wie SNS Ereignis, eine Datei gedrückt S3 usw.

http://aws.amazon.com/lambda/

5

Eine nützliche und einfach Bibliothek zu verwenden, um Nachrichten raubend von SQS ist sqs-Verbraucher

const Consumer = require('sqs-consumer'); 

const app = Consumer.create({ 
    queueUrl: 'https://sqs.eu-west-1.amazonaws.com/account-id/queue-name', 
    handleMessage: (message, done) => { 
    console.log('Processing message: ', message); 
    done(); 
    } 
}); 

app.on('error', (err) => { 
    console.log(err.message); 
}); 

app.start(); 

Es dokumentiert ist gut, wenn Sie mehr Informationen benötigen. Sie finden die Dokumentation unter: https://github.com/bbc/sqs-consumer