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