May 10, 2015 12:29:51 PM Pierre LEVY avatar   531    

Créer un Daemon

Un daemon est un processus qui s'exécute à intervalles réguliers. Lutece dispose d'une interface centralisée de gestion des daemons. Chaque daemon a sa propre fréquence d'exécution. Par ailleurs, il doit fournir un compte-rendu du traitement réalisé. Celui-ci est ainsi consultable dans l'interface de gestion des daemons.

Création d'un classe Daemon

La classe doit étendre la classe Daemon de Lutece. La seule méthode à implémenter est la methode run à l’intérieur de laquelle il faut appeler la méthode setLastRunLogs pour lui passer le compte rendu d'exécution.

import fr.paris.lutece.portal.service.daemon.Daemon;


/**
 * My Daemon
 */
public class MyDaemon extends Daemon
{
    /**
     * {@inheritDoc}
     */  
    @Override
    public void run(  )
    {
        setLastRunLogs( MyProcess() );
    }
}

Déclarer le daemon

Le Daemon doit être déclaré à 2 endroits :

Déclaration dans le fichier XML

Cette déclaration définit la classe Java du daemon ainsi que le nom et la description du Daemon par ses clés i18n (pour gérer la langue de l'utilisateur qui consulte l'interface centralisée).

<!-- Daemons -->
    <daemons>
        <daemon>
            <daemon-id>myDaemon</daemon-id>
            <daemon-name>myplugin.daemon.myDaemon.name</daemon-name>
            <daemon-description>myplugin.daemon.myDaemon.description</daemon-description>
            <daemon-class>fr.paris.lutece.plugins.myplugin.service.MyDaemon</daemon-class>
        </daemon>
    </daemons>

Déclaration dans le fichier properties

Cette déclaration concerne les paramètres de lancement du daemon qui peuvent être modifiables fréquemment.

daemon.myDaemon.interval=86400
daemon.myDaemon.onstartup=1
Ces valeurs sont par défaut dans le fichier properties du plugin, mais elles peuvent être placées dans tout fichier properties lu par Lutece (ex : daemons.properties)

IMPORTANT A partir de Lutece v4 :

Les valeurs de ce fichier ne sont lues que pour le premier lancement. Ces valeurs sont ensuite stockées dans le Datastore de LUTECE et ne sont modifiables que par l'interface centralisée de gestion des daemons.