Tâches de fond et suivi
Le registre K.taches recense les opérations longues en cours : scan d'une campagne, indexation documentaire, import, passage de workflow. Il est distinct du moteur de workflows, qui porte lui aussi le mot tâche mais désigne autre chose. Cette page décrit les deux registres, le patron des ponts et le panneau de suivi.
Déclarer une tâche de fond
| Règle | Motif |
|---|---|
| Une tâche ne se déclare annulable que si elle sait s'arrêter. | Un bouton qui ne coupe rien est pire que pas de bouton. |
| Seul le succès s'efface tout seul. | Un échec non lu disparaitrait avant d'avoir été vu. |
| Une tâche indéterminée l'annonce. | Une barre qui progresse sans mesure réelle donne une attente fausse. |
| Le titre porte le nom court, le sujet le chemin complet. | Deux scans simultanés doivent se distinguer sans infobulle. |
Le patron des ponts
Un module qui produit des opérations longues n'appelle pas le registre lui-même. Il émet son cycle de vie sur le bus, et un petit fichier séparé écoute et crée les tâches. Le producteur et le registre s'ignorent, ce qui permet d'ajouter le suivi d'un module sans toucher à son code, et de le retirer de même.
Les écoutes s'installent dans K.whenShellReady et non au chargement du fichier. Rien ne garantit que le registre soit chargé avant le pont dans le lot shell, et tester K.taches au chargement ferait abandonner en silence sans jamais réessayer.
Panneau Tâches
Le panneau liste les tâches en cours et les échecs non acquittés, avec leur titre, leur sujet et leur avancement quand il est connu. Il donne le bouton d'annulation aux seules tâches qui l'ont déclaré.
Le motif qui a rendu ce panneau nécessaire est le scan d'une campagne : l'attente occupe le panneau Campagne, si bien que sur un dossier de trois cents fichiers, l'utilisateur qui veut travailler ailleurs pendant le scan perd l'opération de vue. L'attente s'affiche donc là où elle est subie, pas seulement là où elle est déclenchée.
Le suivi
Le suivi permet de marquer un objet du logiciel comme à traiter, avec ou sans note, et de retrouver l'ensemble de ces marques dans un panneau unique : échantillons incomplets, scripts, projets, nœuds de chaine.
| Point | Comportement |
|---|---|
| Pose d'une marque | Par le menu contextuel de l'objet, agrégé depuis le registre de menus. |
| Types couverts | Déclarés dans un registre de types, un adaptateur par cible. |
| Note | Facultative. Une marque sans note reste une marque. |
| Écriture | En base, hors registre signé : un marqueur de suivi n'est pas une modification de donnée. |
Les contributions de menu passent par K.menus, qui agrège toutes les contributions d'une même cible. Une entrée de suivi apparait donc dans les menus existants sans qu'aucun panneau ait à être modifié. Les contextes fournis par les panneaux ne portant pas tous une référence d'objet, le suivi installe un adaptateur par cible plutôt que d'imposer un champ commun à l'ensemble des panneaux.