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