L'utilitaire plutar

Cet utilitaire correspond, fonctionnellement, à la commande at d'Unix. Il permet d'indiquer qu'une tâche donnée doit être exécutée à une date donnée. Il offre cependant plusieurs avantages:

La commande plutar prend en ligne de commande quelques arguments. Le plus intéressant est -c qui lui indique quel fichier de configuration utiliser. Ce fichier de configuration lui dira dans quelle base de données il trouvera les tâches en attente, et pour chaque type de tâche ce qu'il faut faire, combien de temps il faut attendre avant une prochaine tentative, combien de tentatives il faut faire au maximum, à qui il faut envoyer un mail et dans quel cas.

Un fichier de configuration pour plutar contient une section globale, common et une section par type de tâche.

La section common contient 3 clefs utiles. La première est base qui donne le nom de la base de données utilisée pour trouver la liste des tâches en attente. Ce nom de base à un sens pour les FDN-libs. Il y a une entrée correspondant à ce nom dans /etc/fdn/dbc.cfg, qui donne toutes les informations pour se connecter à la base en question. La deuxième clef est notify. Elle contient le nom d'une fonction (nom complet, y compris le nom du module perl qui la contient, le module sera chargé en temps utile). Cette fonction retourne un texte. Ce texte est ajouté au mail qui est envoyé dans certains cas, par exemple si une tâche a échouée et qu'elle a des informations pertinentes à faire remonter, elle peut le faire via cette fonction et une variable globale. La troisième clef, from, indique l'adresse d'expédition des mails envoyés par plutar.

Pour l'ADSL, ça donne ça:

[common]
	base = adsl
	notify = FDN::Adsl::Plutar::get_notify
	from = FDN <bureau@fdn.fr>

Pour l'ADSL, on n'a qu'une seule variété de tâche à faire traiter par plutar: le test d'éligibilité d'une ligne pendant le traitement d'une commande. La sections elig donne les renseignements utiles sur cette tâche: le nom de la fonction perl utilisée, son nom long (pour avoir des mails lisibles), le fait qu'elle doit être ré-essayée toutes les heures, et le fait qu'il n'est pas utile d'essayer plus de 24 fois.

[elig]
	fonction = FDN::Adsl::Plutar::test_eligibilite
	desc = "Test d'eligibilite d'une ligne"
	retrydelay = 3600
	maxretry = 24

Si on ajoute une clef notify_success contenant une adresse mail, plutar enverra un mail à cette adresse à chaque fois qu'une tâche de ce type va réussir. notify_retry joue le même rôle quand une tâche doit être ré-essayée. notify_failed est le plus intéressant: être tenu informé quand une tâche échoue. On pourrait sans doute ajouter une ligne notify_failed = bureau@fdn.fr pour être prévenu quand un test d'éligibilité échoue définitivement (24 fois de suite). Ce sera surement ajouté, au moins dans un premier temps, pour surveiller ce qui se passe.