9 nov. 2021 15:45:22 Thomas Dumont avatar

Daemon

Définition

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

Implémentation

Un daemon 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éclaration

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

Déclaration dans le fichier XML du plugin

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 du plugin

Cette déclaration concerne les paramètres de lancement du daemon.

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.