Я знаю, что этот ответ очень старый, но я просто хотел прокомментировать это, потому что я столкнулся с проблемами, используя их, делая, независимо от утверждения с помощью счетчиков.
На протяжении многих лет я думаю о лучшем подходе. То есть использовать какую-то агрегацию событий, например, реактивные расширения «Тема» или тому подобное. Когда попытка не выполняется, вы просто публикуете событие, в котором говорится, что попытка не выполнена, и функция агрегатора перераспределяет событие. Это позволяет вам намного больше контролировать повторение, не загрязняя сам вызов кучей циклов повтора, а что нет. Также вы не связываете нить с кучей нитей.
Один из способов добавления чего-либо в сеанс выглядит следующим образом:
request.session.copy(
data = request.session.data + ("organisation_name" -> formData.toString())
)
Другой способ добавления в сеанс в точке возврата выглядит следующим образом:
Redirect(routes.......).addingToSession("organisation_name" -> formData.toString())