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