Кнопка отмены в ZK - PullRequest
2 голосов
/ 05 марта 2012

Я хочу поставить метку или кнопку прерывания ниже ... сообщение об обработке отображается в ZK.или есть ли способ загрузить мои пользовательские компоненты вместо обработки по умолчанию.сообщение в ZK.

Желание случится, если сделать прерывание, пока обработка идеальна, я хочу сделать это в любом случае, так как несколько раз мое приложение неактивно при загрузке

1 Ответ

0 голосов
/ 30 декабря 2012

ZK построен на сервлетах.Когда на интерфейсе пользователя отображается кнопка «Занят», ожидающая ответа ajax, поток сервлетов выполняет долгую работу на сервере.Возможно, можно было бы послать другой поток, чтобы прервать первый поток, но на самом деле это высокий риск, поскольку все потоки сервлета могут в конечном итоге выполнять длительную работу, и новые не будут доступны для их отмены.

Лучшее решение состоит в том, что длительная работа должна выполняться не в потоке сервлета, а в фоновом потоке или очереди сообщений.См. zk-asynchronous-ui-updates-and-background-processing .В этом примере работа выгружается в java.util.concurrent.ExecutorService, который имеет API для отмены работы.

Обратите внимание, что для отмены рабочего потока используется прерывание, и не гарантируется, что код, выполняющий работу, правильно отреагирует на прерывание, так что его фактически можно отменить.Ответы в теме отменить с помощью службы executor обрисовывают в общих чертах некоторые проблемы, и вам следует проверить, можно ли прервать работу, которую вы выполняете, с помощью API.

...