Для корректной работы фоновых задач в проекте приложения необходимо произвести следующие настройки:
-
Прерывание задач по таймауту реализуется бином
WatchDog
. Для его периодического вызова в файлыspring.xml
блоков Web Client и Desktop Client необходимо добавить следующее объявление:<bean id="backgroundWorkerScheduler" class="org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler"> <property name="daemon" value="true"/> <property name="poolSize" value="1"/> </bean> <task:scheduled-tasks scheduler="backgroundWorkerScheduler"> <task:scheduled ref="cuba_BackgroundWorker_WatchDog" method="cleanupTasks" fixed-delay="2000"/> </task:scheduled-tasks>
-
В блоке Web Client опрос состояния задачи инициируется клиентским кодом, выполняющимся в веб-браузере. Периодичность опроса задается свойством приложения cuba.backgroundWorker.uiCheckInterval , по умолчанию - 2 сек.
Кроме того, на выполнение фоновых задач в блоке Web Client влияют свойства приложения cuba.backgroundWorker.maxActiveTasksCount и cuba.backgroundWorker.maxClientLatencySeconds .