Sites


Lutece : guide développeur

Créer un traitement d'arrière-plan (Daemon)

Un daemon est un traitement automatique qui s'exécute à intervalles réguliers et de manière asynchrone. Afin de faciliter l'implémentation de ces traitements Lutece dispose d'une interface centralisée de gestion de ces derniers.

Chaque daemon a sa propre fréquence d'exécution et doit fournir un compte-rendu des traitements réalisés qui est consultable dans l'interface de gestion des daemons.

Création d'une classe Daemon

La classe doit étendre la classe Daemon de Lutece et implémenter la méthode run.

C'est cette méthode qui sera appelée lors du passage du daemon, à l’intérieur de cette méthode il est nécessaire d'utiliser la méthode setLastRunLogs pour fournir 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 d'un Daemon

Un Daemon pour qu'il soit chargé par le service de Daemon Lutece doit être déclaré dans le descripteur du plugin.

Cette déclaration se fait en ajoutant la section suivante dans le fichier xml du plugin

<!-- 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>

Les propriétés suivantes sont à renseigner :

  • daemon-id : La clef technique permettant d'identifier de façon unique un daemon
  • daemon-name : La clef i18n (clef contenue dans les fichiers d'internationalisation du plugin ) contenant le nom du daeamon
  • daemon-description : La clef i18n contenant la description du plugin
  • daemon-class : La classe java implémentant le traitement

Configuration d'un Daemon

Les propriétés de configuration d'un daemon doivent être renseignées dans le fichier de configuration du plugin.

Ces propriétés indiquent  si le daemon doit etre lancé automatiquement au démarrage de l'application ainsi que son intervalle de passage en seconde.

daemon.myDaemon.interval=86400 
daemon.myDaemon.onstartup=1

Une fois l'application initialisée ces configurations sont stockées dans le Datastore et peuvent être administrées dans le backoffice.

Il y a une erreur de communication avec le serveur Booktype. Nous ne savons pas actuellement où est le problème.

Vous devriez rafraîchir la page.