#scala #akka #actor
#scala #акка #актер
Вопрос:
Я написал веб-приложение с использованием scala/sbt и reactjs. Я использую в нем актеров акка. Вот такой случай: я написал актерский сервисактор
case m: HandleUserCreateOrUpdate =gt; { requestType match { case CREATE: lt;UserDAO.create()gt; case UPDATE: lt;UserDAO.getUser() { then UserDAO.update}gt; } }
Интерфейс нажимает создать и обновить запрос с помощью одной кнопки. Создайте запрос создайте пользователя и обновите запрос просто обновите список пользователей
Поэтому здесь, когда этот запрос поступает на серверную часть, он создает пользователя, но требует некоторого времени для создания в базе данных. Из-за этого, как только приходит запрос на обновление UserDAO.getUser()
, он сообщает, что пользователь недоступен. Поскольку создание пользователя требует времени для сохранения записей пользователей в базе данных
Итак, как создать ожидание, UserDAO.getUser()
пока пользователь не будет создан в базе данных.
Комментарии:
1. Почему бы не запланировать это сообщение на более поздний срок (использовать соответствующий тайм-аут) как другой тип, чтобы оно не превратилось в бесконечный цикл, если пользователь на самом деле отсутствует? Если у вас есть доступ на стороне клиента, вы можете отключить кнопку отправки до получения подтверждения после одного сообщения и, возможно, даже использовать случайный UUID для дополнительной уверенности..