У меня есть простой метод, который добавляет данные в базу данных Cassandra:
def addData(data: SomeData): Task[Either[Exception, Unit]]
Я использую его для добавления одних и тех же данных в две таблицы одного типа:
for {
persistOneTable <- repo.addData(data).mapError(SomeError(_))
persistSecondTable <- repo2.addData(data).mapError(SomeError(_))
} yield ()
Мой вопрос: как мне изменить этот код, чтобы повторить попытку вставки в таблицу, если она не удалась в первый раз? Я не хочу иметь несогласованные данные в таблицах, поэтому, если это не удалось после вставки в первую таблицу, я хочу повторить попытку, а затем вставить во вторую таблицу, а также повторить попытку, пока она не будет добавлена, чтобы иметь точно такие же данные в обеих таблицах
Task
? ИлиException
вEither
также указывает на необходимость повторной попытки? - person paulpdaniels   schedule 14.05.2021Task
не удалось. - person Developus   schedule 14.05.2021