Ho una coda SQS che viene costantemente popolata da un consumatore di dati e ora sto cercando di creare il servizio che estrarrà questi dati da SQS usando il boto di Python.Le migliori pratiche per il polling di una coda SQS AWS e l'eliminazione dei messaggi ricevuti dalla coda?
Il modo in cui l'ho progettato è che avrò 10-20 thread che tentano tutti di leggere i messaggi dalla coda SQS e quindi fare ciò che devono fare sui dati (business logic), prima di tornare alla coda per ottenere il prossimo batch di dati una volta che hanno finito. Se non ci sono dati, aspetteranno solo che alcuni dati siano disponibili.
ho due aree non sono sicuro circa con questo disegno
- E 'una questione di chiamare receive_message() con un valore time_out lunga e se non viene restituito nei 20 secondi (massimo consentito) quindi riprova? Oppure esiste un metodo di blocco che ritorna solo quando i dati sono disponibili?
- Ho notato che una volta ricevuto un messaggio, non viene eliminato dalla coda, devo ricevere un messaggio e quindi inviare un'altra richiesta dopo averlo ricevuto per eliminarlo dalla coda? sembra un po 'eccessivo.
Grazie