Browse Source

server: Add retries to the SQSSeederTask

Don't stop consuming messages when the connection to SQS is lost,
instead, retry to connect.
scalafmt-draft
Alexis Hernandez 7 years ago
parent
commit
9dd94f299b
  1. 23
      server/app/com/xsn/explorer/tasks/SQSSeederTask.scala

23
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 = {

Loading…
Cancel
Save