A Amazon tem um serviço que você pode usar. É chamado de Simple Queue Service. link
Você pode usar isso para colocar trabalhos em fila e selecioná-los da fila um de cada vez.
When a message is received, it becomes “locked” while being processed. This keeps other computers from processing the message simultaneously. If the message processing fails, the lock will expire and the message will be available again. In the case where the application needs more time for processing, the “lock” timeout can be changed dynamically via the ChangeMessageVisibility operation.
Há várias alternativas que podem se adequar ao seu caso de uso: