Параллельный звонок в разговор - PullRequest
6 голосов
/ 11 марта 2010

Я использую Seam и получаю сообщение об ошибке «Параллельный вызов в разговор» Что это значит?

У меня есть кнопка, обработка которой занимает 5 минут. Я получаю эту ошибку в течение 2 минут. Задание тайм-аута одновременного запроса на 10 минут не работает. Есть ли способ заблокировать все остальные запросы, пока не завершится первый?

Ответы [ 3 ]

5 голосов
/ 28 апреля 2010

Раздел 6.9 документации Seam объясняет стратегии обработки одновременных вызовов в диалоговом контексте.

1 голос
/ 29 августа 2010

не думаю, что это хорошая идея - блокировать все другие запросы для ТАКОЙ длительной операции, гораздо лучше, если он будет работать асинхронно.

Вы можете посмотреть здесь http://achorniy.wordpress.com/2009/07/14/avoid-concurrent-call-to-conversation/, ноэто решение, позволяющее вам блокировать другие запросы в течение короткого периода времени (конечно, это может блокировать их на длительное время, но в целом это не очень хороший способ заставить пользователя ждать таких запросов). Вы можете посмотреть здесьхороший пример того, как можно организовать пользовательский интерфейс для работы с async на бэкенде (см. примеры liveface для richfaces «Поддержка Ajax» Push / Pull)

0 голосов
/ 22 октября 2010

Вот решение - используйте richfaces progressBar, вызовите асинхронный метод seam для запуска long-process и передайте ProgressBean с параметрами асинхронному методу (он должен быть доступен из вашего компонента диалога, который вы используете в JSF) и периодически обновляйте статус прогресса в длительной задаче Этот подход подробно объясняется здесь [Показать динамический процесс в Seam / Richfaces] [1]

[1] http://achorniy.wordpress.com/2010/10/22/show-dynamic-process-progress-in-seam-richfaces/

...