Era diverso tempo che non mi serviva… l’ho rispolverato in questi giorni.
Innanzitutto il file local.blocks.properties deve avere la seguente riga commentata:
#include.block.cron=false
fatto il build avremo in WEB-INF/lib/ la libreria cocoon-cron-block.jar.
La configurazione è tutta nel cocoon.xconf e in questo file ci sono già degli esempi di configurazioni.
Per esempio:
<component class="org.apache.cocoon.components.cron.CocoonQuartzJobScheduler" logger="cron" role="org.apache.cocoon.components.cron.JobScheduler">
…
<!-- Definintions of triggers --> <triggers> <trigger name="pipeline-test" target="org.apache.cocoon.components.cron.CronJob/test-cron" concurrent-runs="true"> <seconds>10</seconds> <minutes>*</minutes> <hours>*</hours> <days>*</days> <months>*</months> </trigger> </triggers> </component> <component role="org.apache.cocoon.components.cron.CronJob/test-cron" class="org.apache.cocoon.components.cron.CocoonPipelineCronJob" logger="cron.pipeline"> <pipeline>samples/updateCacheContext.flow</pipeline> </component>
E’ stato configurato un trigger con nome “pipeline-test” e target …/test-cron che verrà eseguito ogni minuto per tutti i giorni, per la precisione al decimo secondo di ogni minuto. Attenzione all’attributo concurrent-runs, indica al cron se può eseguire un nuovo comando anche se quello precedente ancora non è terminato.
Di seguito il trigger è configurato per invocare una semplice pipeline:
samples/updateCacheContext.flow.
Funziona tutto per bene, quindi anche stavolta non mi sono visto java.util.TimerTask.
