Asynchronní úlohy (centrální TaskExecutor)

Asynchronní úlohy (centrální TaskExecutor)

Pokud modul potřebuje naplánovat vlastní async tasky, je připraven jednoduchý způsob konfigurace s využitím centrálního java.util.concurrent.ScheduledExecutorService

Pro použití v XML konfiguraci z využitím CpsModuleScheduledExecutorTask:

xml
1 <bean id="ipListReloadTask" class="com.fg.webapp.cps.v1.modules.schedule.CpsModuleScheduledExecutorTask">2    <!-- wait 30 seconds before starting repeated execution -->3    <property name="delay" value="30000"/>4    <!-- run every 1hr -->5    <property name="period" value="3600000"/>6    <!-- timer task to execute -->7    <property name="runnable">8        <bean class="org.springframework.scheduling.support.MethodInvokingRunnable">9            <property name="targetObject" ref="externalMonitoringManager" />10            <property name="targetMethod" value="reloadActualIpList" />11        </bean>12    </property>13</bean>

Nic dalšího již není potřeba. Modul si sám zajistí registraci do centrálního TaskExecutor.

Od Edee v10.15.2 je registrace tasku přeskočena, pokud je hodnota delay nastavena na zápornou hodnotu.

Zkopírovat odkaz na sekciKonfigurace

Počet vláken pro použití lze kofigurovat pomocí properties

1 # vychozi hodnota2cpsModuleScheduledExecutor.poolSize=3

Zkopírovat odkaz na sekciMožnosti

Pro přímou konfiguraci z kódu v třídě implementující Runnable

java
1 ScheduledExecutorService executorService = applicationContext.getBean("cpsModuleScheduledExecutor",ScheduledExecutorService.class);2executorService.scheduleAtFixedRate(this, ttl, ttl, TimeUnit.MILLISECONDS);

Pro lepší možnosti je doporučeno použití job manager modulu