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.
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() );
}
}
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 :
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.