2015-09-02 29 views
6

Il mio sistema gira su un gruppo di scalabilità automatica di Amazon e una funzione consente all'utente di inviare messaggi agli utenti e ho il seguente caso d'uso da risolvere.Posso utilizzare Amazon SQS come coda di ritardo prima di inviarlo a SNS?

  1. Un nuovo messaggio viene inviato nella mia applicazione tra gli utenti.
  2. Un messaggio per informare l'utente via e-mail è caduto in una coda con un ritardo di 60 secondi. Questo ritardo consente a un client di chat in tempo reale (faye/angularjs) di visualizzare il messaggio e contrassegnarlo come visualizzato.
  3. Dopo il ritardo del messaggio, lo stato di "lettura" viene controllato e se non è stato letto dal client viene inviata un'e-mail.

Originariamente stavo andando ad utilizzare un cronjob su ogni sondaggio assistente di applicazione della coda dei messaggi però mi viene in mente che sarebbe stato più efficiente utilizzare SNS per chiamare un qualche tipo di e-mail di invio endpoint (forse in Lambda) .

Non riesco a vedere alcun modo per fare sondaggi SNS SQS tuttavia, qualcuno può suggerire come questo potrebbe essere fatto? Essenzialmente voglio SNS con un ritardo in modo che io non spam qualcuno in una chat "live" con avvisi e-mail.

Grazie

risposta

4

Purtroppo questo non è ancora disponibile out of the box. La parte mancante è la generazione delle notifiche Amazon SNS sull'arrivo/visibilità dei messaggi tramite una coda Amazon SQS, tramite push (simile a Amazon S3 notifications o tramite sondaggio simile a Amazon Kinesis subscriptions (vedere The Pull/Push Event Models per ulteriori informazioni sulla differenza), che consentirebbero entrambi di . collegare una funzione AWS Lambda al resp SQS delay queue eventi, si veda ad esempio:

detto questo, è possibile aggirare questa limitazione in alcuni modi, ad esempio:

  • attiva la funzione Lambda in programma (ad es. una volta al minuto), e richiedere la vostra coda di ritardo SQS da lì

il team AWS Lambda ha consegnato molti più simili richieste di funzionalità/negli ultimi mesi' btw., quindi mi aspetterei loro di offrire sia la gestione degli eventi SQS e in programma le funzioni lambda nel corso dell'anno ancora.

+0

Sembra che sia meglio seguire la rotta SQS di cronjob-listening-to-now per ora. Fino a quando Amazon non lancerà alcune caratteristiche vicine! Grazie! – JimBlizz

+0

Per chi si trova nel 2017 o in seguito - Scopri la soluzione "cloud cron" di Amazon: Eventi CloudWatch: http://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html – cr125rider