Лифт: отправка уведомлений клиенту из будущего - PullRequest
2 голосов
/ 28 октября 2011

В лифте у меня есть страница, которая принимает несколько файлов для загрузки, а затем обрабатывает файлы (это занимает около минуты +). Я не хочу заставлять пользователей ждать целую минуту, чтобы увидеть другую страницу, Я решил поместить обработку в объект Future. Моя конечная цель - отправить пользователю ссылку на страницу результатов после завершения обработки.

Вот суть моего кода:

Futures.future {
  doLongLastingProcessing
  val linkXml = makeLinkToResults
  println("Hey I'm done!")
  S.notice(linkXml)
}

Проблема, которую я получаю, заключается в том, что любые вещи, связанные с S, сделанные в Future, похоже, не работают. Работа заканчивается, и я вижу «Привет, я сделал» в консоли, но не получаю уведомления.

Как я могу получить уведомление о «завершении» для пользователя (даже если он ушел со страницы загрузки)?

Ответы [ 2 ]

3 голосов
/ 28 октября 2011

Вам следует взглянуть на CometActors Lift и отправку сообщения соответствующему CometActor из будущего.Или вы можете просто отказаться от Будущего и использовать Актеров.

Имейте в виду, что есть несколько ошибок (например, , не имеющих доступа к S), но это звучит как вашCometActor может просто вернуть нормальный ответ.Я только что проверил вики, и, очевидно, у вас есть доступ к S.notice в вашем CometActor .

0 голосов
/ 28 октября 2011

Вот статья, которая показывает, как сделать то, что вы просите, используя кометных актеров post

...