4.3. Отмена выполнения отчета
Если процесс генерации отчета выполняется как фоновая задача, он может быть прерван пользователем.
Чтобы добавить возможность отмены, необходимо определить свойство reporting.useBackgroundReportProcessing
в экране Administration > Application Properties:
reporting.useBackgroundReportProcessing = true
Теперь при выполнении будет отображаться окно с progress bar и кнопкой Cancel:
Также можно установить таймаут выполнения с помощью свойства reporting.backgroundReportProcessingTimeoutMs
:
reporting.backgroundReportProcessingTimeoutMs = 30000
По истечении указанного таймаута задача будет прервана независимо от этапа ее выполнения, и пользователь получит сообщение об ошибке:
Чтобы настроить отмену выполнения отчета программно, используйте метод cancelReportExecution()
интерфейса ReportService
, который принимает идентификатор сессии пользователя и идентификатор выполняемого отчета:
reportService.cancelReportExecution(userSessionId, report.getId());