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
<bean id="ipListReloadTask" class="com.fg.webapp.cps.v1.modules.schedule.CpsModuleScheduledExecutorTask"> <!-- wait 30 seconds before starting repeated execution --> <property name="delay" value="30000"/> <!-- run every 1hr --> <property name="period" value="3600000"/> <!-- timer task to execute --> <property name="runnable"> <bean class="org.springframework.scheduling.support.MethodInvokingRunnable"> <property name="targetObject" ref="externalMonitoringManager" /> <property name="targetMethod" value="reloadActualIpList" /> </bean> </property></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
delaynastavena na zápornou hodnotu.
Konfigurace
Počet vláken pro použití lze kofigurovat pomocí properties
kód
# vychozi hodnotacpsModuleScheduledExecutor.poolSize=3Možnosti
Pro přímou konfiguraci z kódu v třídě implementující Runnable
java
ScheduledExecutorService executorService = applicationContext.getBean("cpsModuleScheduledExecutor",ScheduledExecutorService.class);executorService.scheduleAtFixedRate(this, ttl, ttl, TimeUnit.MILLISECONDS);Pro lepší možnosti je doporučeno použití job manager modulu
