2014-07-02 10 views
7

Ho un'applicazione che invia e-mail ed esegue caricamenti di file (e ridimensionamento delle immagini). Entrambi questi servizi non sono usati troppo spesso e sono abbastanza leggeri.AWS due code SQS che inviano a un worker

Sto già utilizzando una coda SQS per inviare messaggi (e-mail a/oggetto/corpo) a un operatore che esegue un'app Sinatra che chiama l'API SES, funziona correttamente. La mia domanda è: è possibile inviare messaggi di upload di file anche a quello stesso lavoratore? Forse potrebbe essere su una coda diversa.

Sembra piuttosto inutile avere due istanze di ec2 sedute lì (per la maggior parte) senza fare nulla.

PS: sto usando beanstalk elastico

+0

"Sto già utilizzando una coda SQS per inviare messaggi (e-mail a/oggetto/corpo) a un operatore che esegue un'app Sinatra che chiama l'API SES, funziona correttamente" - sarebbe disposto a condividere questo codice? Ho lottato con questo, e non riesco a trovare esempi. – pingu

risposta

7

Sarebbe meglio introdurre un attributo TYPE nel messaggio. TIPO messaggio potrebbe essere EMAIL/FILEUPLOAD. In base all'attributo TYPE, l'operatore può chiamare il rispettivo servizio con il messaggio.

Con l'approccio di cui sopra, si sarebbe in grado di elaborare messagi con un lavoratore & una coda. È anche possibile scalare automaticamente il server e non ci saranno problemi con l'elaborazione di messaggi con più worker.

+0

Ah sì, ho avuto un piano simile circa 5 minuti fa, bello sapere che anche altri lo stavano pensando! Grazie –

0

Certo, perché non è la mia risposta iniziale. Ciò che è all'interno dell'istanza dipende totalmente da te e sotto il tuo completo controllo. Dato che hai già specificato l'utilizzo dell'applicazione/server è abbastanza leggero; puoi mettere la tua altra app nello stesso modo.

Assicurati solo che la data dimensione dell'istanza sia valida quando entrambi si trovano nella stessa istanza; App Domain (2 app), la configurazione dell'applicazione non si confonde tra loro.

PS: si utilizzerà una coda separata per la nuova app; se nel caso è necessario inviare le immagini in coda, è possibile caricare le immagini in S3 e inserire i rispettivi collegamenti negli elementi del messaggio SQS ed elaborarli.

+0

Grazie, ho dimenticato di dire che sto usando il beanstalk elastico. Questo modello non sembra essere troppo disposto a fare questo tipo di cose. Forse dovrei farlo manualmente creando la mia istanza EC2 –

Problemi correlati