4.5.6.2. Setting Up Environment

In order for background tasks to work correctly, the following configuration should be performed for the application project:

  • Timeout-based task interruption is implemented by the WatchDog bean. To ensure that it is invoked periodically, you should add the following declaration to the spring.xml files of the Web Client and Desktop Client blocks:

    <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>

  • In the Web Client block task state polling is initiated by the client code running in web-browser. Polling interval is defined by the cuba.backgroundWorker.uiCheckInterval application property; the default value is 2 seconds.

    Additionally, background tasks running in the Web Client block are affected by cuba.backgroundWorker.maxActiveTasksCount and cuba.backgroundWorker.maxClientLatencySeconds application properties.