LD4P/sinopia_indexing_pipeline

View on GitHub
src/MongoWaiter.js

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
import Logger from "./Logger"
import connect from "./mongo"
import promiseRetry from "promise-retry"

export default class MongoWaiter {
  constructor() {
    this.logger = new Logger()
  }

  async wait() {
    const logger = this.logger
    return promiseRetry(
      function (retry, number) {
        logger.debug(`Attempting to connect to Mongo ${number}`)
        return connect()
          .then((client) => client.close())
          .catch(retry)
      },
      { factor: 1, retries: 30 }
    ).then(() => logger.debug("Mongo connection succeeded"))
  }
}