Apache Cocoon – Cron

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>