diff --git a/server/app/com/xsn/explorer/tasks/SQSSeederTask.scala b/server/app/com/xsn/explorer/tasks/SQSSeederTask.scala index 39fbd4e..01004f1 100644 --- a/server/app/com/xsn/explorer/tasks/SQSSeederTask.scala +++ b/server/app/com/xsn/explorer/tasks/SQSSeederTask.scala @@ -40,15 +40,20 @@ class SQSSeederTask @Inject() ( def run(): Unit = { logger.info("Starting seeder") - SqsSource(config.queueUrl, settings) - .runWith(Sink.foreach(handleMessage)) - .onComplete { - case Failure(ex) => - logger.error("Failed to stream SQS messages", ex) - - case Success(_) => - logger.info("SQS stream completed") - } + def f(): Unit = { + SqsSource(config.queueUrl, settings) + .runWith(Sink.foreach(handleMessage)) + .onComplete { + case Failure(ex) => + logger.error("Failed to stream SQS messages, restarting seeder", ex) + f() + + case Success(_) => + logger.info("SQS stream completed") + } + } + + f() } private def handleMessage(message: Message): Unit = {