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. 7
      server/app/com/xsn/explorer/tasks/SQSSeederTask.scala

7
server/app/com/xsn/explorer/tasks/SQSSeederTask.scala

@ -40,17 +40,22 @@ class SQSSeederTask @Inject() (
def run(): Unit = {
logger.info("Starting seeder")
def f(): Unit = {
SqsSource(config.queueUrl, settings)
.runWith(Sink.foreach(handleMessage))
.onComplete {
case Failure(ex) =>
logger.error("Failed to stream SQS messages", 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 = {
def onBlockhash(blockhash: Blockhash) = {
val result = blockEventsProcessor.newLatestBlock(blockhash)

Loading…
Cancel
Save