Tâches en arrière-plan
Certains traitements sont trop lents pour qu'on vous les fasse regarder. Importer une couche, en exporter une, exécuter un rapport sur des milliers d'enregistrements, caler un plan numérisé sur la carte - chacun de ces traitements est inscrit comme une tâche et exécuté par un programme distinct sur le serveur. La boîte de dialogue d'où vous l'avez lancée peut être fermée. Votre navigateur peut être fermé. La tâche continue.
Ce que vous récupérez, c'est une liste. Chaque tâche a un numéro, un statut et un historique, et la liste est l'endroit où vous allez pour voir où elle en est, récupérer ce qu'elle a produit, ou comprendre pourquoi elle s'est arrêtée.
Ce qu'est une tâche
Trois logiciels distincts interviennent, et savoir lequel fait quoi explique l'essentiel du comportement de la liste.
- L'application écrit une ligne. Elle contient ce que vous avez demandé et le statut Pending. C'est tout ce qu'elle fait. Elle n'exécute pas le traitement.
- Le programme de traitement tourne sur le serveur et n'a que les tâches à faire. Il cherche les lignes en attente, en réclame une, la marque Busy, et s'y met.
- La liste des tâches que vous avez ouverte lit cette ligne toutes les quelques secondes et la redessine.
Fermer la liste n'arrête donc pas une tâche, et la laisser ouverte n'en accélère aucune. Deux personnes qui regardent la même tâche voient la même ligne.
Une tâche bloquée sur Pending n'est pas lente, elle est sans surveillance
Le programme de traitement est un processus distinct de l'application. S'il ne tourne pas, les tâches sont écrites et jamais reprises : elles restent sur Pending indéfiniment, et rien dans la liste ne dira pourquoi. Le signe, c'est que toutes les tâches sont bloquées, les vôtres et celles des autres, pas seulement les vôtres. Prévenez votre administrateur - ce n'est pas quelque chose que la liste peut corriger.
Une tâche n'est pas perdue si le programme s'arrête au milieu. Pendant qu'une tâche s'exécute, sa ligne est touchée environ une fois par minute. Une ligne qui n'a pas été touchée depuis cinq minutes est considérée comme abandonnée, remise en Pending et reprise, avec la note Worker stopped heartbeating; job re-queued for processing.
Les quatre listes
Il n'existe pas d'écran unique des tâches. Chaque type de travail garde sa propre liste, et chacune s'ouvre là où ce travail est lancé.
| Liste | D'où elle s'ouvre | Le travail lui-même |
|---|---|---|
| Import Jobs | La petite flèche à côté d'Import dans la barre d'outils de la carte | Importer des couches |
| Export Jobs | La petite flèche à côté d'Export | Exporter des couches |
| Report Jobs | La flèche à côté de Reports, et le bouton Jobs dans la liste des rapports et l'aperçu de rapport | Rapports |
| Georeference Jobs | Le bouton Georef Jobs dans Pièces jointes, et le panneau de géoréférencement | Images géoréférencées |
Les imports et les exports partagent une même boîte de dialogue : ces deux listes sont donc la même liste, à quelques colonnes près. Les tâches de rapport et de géoréférencement ont chacune la leur, et elles diffèrent sur des points qui méritent d'être connus - voir Tâches de rapport et Tâches de géoréférencement.
Chaque liste a deux onglets. Yours contient ce que vous avez lancé. All contient celles de tout le monde, et seuls les administrateurs du site l'ont, sur toutes les listes. L'onglet n'est pas simplement masqué pour les autres - le serveur vérifie le même droit à nouveau avant de répondre, il n'y a donc rien à gagner à contourner l'onglet.
Lire la liste
La liste s'actualise seule tant qu'elle est ouverte : les listes d'import et d'export toutes les deux secondes, les tâches de rapport toutes les cinq, celles de géoréférencement toutes les quatre. Elle est délibérément discrète - pas de roue, pas de clignotement - de sorte qu'un statut qui change pendant votre lecture change, tout simplement. Le bouton Refresh est là pour forcer l'actualisation, et celui-là tourne bien.
Dix tâches sont affichées à la fois, les plus récentes d'abord. La liste de géoréférencement en affiche vingt-cinq.
Les colonnes ne trient pas, et c'est délibéré
Le serveur renvoie une page dans un seul ordre, les plus récentes d'abord. Un tri appliqué dans le navigateur réordonnerait les dix lignes à l'écran tout en donnant l'impression de les avoir toutes classées, ce qui est pire que pas de tri du tout. Restreignez plutôt la liste.
Deux types de restriction se superposent :
- La barre d'outils en haut : un couple From date et To date, qui filtre sur la date de création de la tâche, et une zone Filter by user qui n'apparaît que sur l'onglet All. Les trois sont vidées à chaque ouverture de la boîte de dialogue.
- La ligne de filtres sous les en-têtes de colonnes, sur les listes d'import, d'export et de rapports. Chaque colonne filtre selon ses propres termes et sa liste à cocher propose les valeurs réellement présentes. Voir Filtres de colonne. La liste de géoréférencement n'a pas de ligne de filtres ; elle a une liste déroulante de statut et une seule zone de recherche.
Les deux sont indépendantes à dessein. Clear filters dans la barre d'outils vide les trois contrôles de la barre et laisse les filtres de colonne en place ; la gomme de la ligne de filtres fait l'inverse.
Un filtre qui n'a pas pu être appliqué est signalé, jamais escamoté
Si le serveur ne parvient pas à traduire un de vos filtres de colonne en requête, un avertissement nomme les colonnes qu'il n'a pas pu utiliser et reste à l'écran jusqu'à ce que vous le fermiez. Cela compte plus qu'il n'y paraît. Un filtre qui ne ferait silencieusement rien vous laisserait devant plus de lignes que ce que vous avez demandé, sans que la liste en donne le moindre signe.
La colonne Progress des listes d'import et d'export est à prendre avec des pincettes. Sur un export elle est réelle : elle vient de l'outil de conversion pendant qu'il écrit le fichier. Sur un import, ce sont des jalons - préparé, chargé, publié - elle peut donc rester longtemps sur un chiffre puis sauter. Une tâche en échec voit sa barre remplie jusqu'au bout plutôt que laissée à 50 %, de sorte qu'un échec ne ressemble jamais à une tâche encore en cours.
Pour un import qui met à jour une couche existante, Records est le nombre d'enregistrements que l'import a modifiés - mis à jour, ajoutés ou supprimés. Pour un export, Downloads compte combien de fois son fichier a été téléchargé.
Prévenu quand elle se termine
Inutile de garder une liste ouverte pour savoir quand une tâche est terminée. Quand l'un de vos imports, exports ou rapports se termine ou échoue, une petite notification apparaît en bas à droite de la page de l'application où vous vous trouvez. Elle nomme la tâche et dit comment elle s'est terminée, avec le message de la tâche s'il y en a un - pourquoi elle a échoué, ou combien de lignes un import a refusées. Elle reste jusqu'à ce que vous la fermiez avec sa ✕ ou que vous y répondiez : une notification arrivée pendant que vous étiez loin de l'écran est toujours là à votre retour. Seules les trois plus récentes sont affichées à la fois ; les listes ci-dessous ont toutes les tâches.
| La tâche | Ce que propose la notification |
|---|---|
| Un export ou un rapport, prêt | Download - le même fichier que le bouton de téléchargement de la liste. |
| Un import, carte ouverte, sa couche absente de votre espace de travail | Add to workspace. La couche y entre affichée et en haut de la liste, dessinée par-dessus vos autres couches, comme si vous l'aviez ajoutée depuis la Bibliothèque de couches puis montée tout en haut ; enregistrez l'espace de travail pour la garder. Si aucune de ses données n'est visible, la carte s'y rend. |
| Un import, carte ouverte, sa couche présente dans votre espace de travail mais masquée | Show on map, qui l'affiche. |
| Un import dans une couche déjà affichée | Rien à demander : la carte a déjà redessiné la couche avec les nouveaux enregistrements. |
| Un import, sur n'importe quelle autre page | Seulement la nouvelle. Ouvrez la carte tant que la notification est là et son bouton apparaît. |
| Une tâche en échec | La raison. Corrigez-la, puis relancez le travail depuis son assistant. |
Not now écarte la question. La notification ne vient qu'à vous, dans chaque onglet où l'application est ouverte. Elle vaut pour l'instant : une tâche qui se termine pendant que vous êtes déconnecté ne laisse aucune notification en attente, mais la liste et les e-mails l'ont toujours. Un import fait dans un autre de vos comptes dit qu'il est terminé mais ne propose aucun bouton, car sa couche appartient à ce compte. Les tâches de géoréférencement n'envoient pas de notification.
Les statuts
| Statut | Ce qu'il signifie |
|---|---|
| Pending | Inscrite, en attente qu'un programme la réclame. Rien ne s'est encore passé. |
| Queued | La même chose sous un autre nom, employée par certains types de tâches. Un programme la réclamera. |
| Busy | Un programme la détient et y travaille en ce moment. C'est le seul état où la progression avance. |
| Completed | Terminée. Les exports se téléchargent d'ici, les rapports ont leurs fichiers, les imports ont modifié la couche. |
| Completed with warnings | Terminée, avec un avis : quelque chose y a été laissé de côté. Voir Une tâche peut se terminer et avoir malgré tout quelque chose à vous dire. |
| Failed | Elle s'est arrêtée sur une erreur. View Details porte le message. |
| Cancelled | Vous l'avez arrêtée. Tout ce qu'elle avait produit a été jeté. |
| Pending deletion | Non pas un état du traitement mais de la ligne : vous avez demandé sa suppression et le nettoyage n'est pas terminé. Voir Supprimer une tâche. |
Running apparaît çà et là dans l'interface, mais ce n'est pas un état qu'une tâche peut réellement porter. Un traitement en cours est Busy.
Les tâches de géoréférencement emploient leurs propres mots pour la même idée - Queued, Processing, Done, Failed - et en ajoutent un qui leur est propre, Missing Points, qui signifie que l'image a moins que les trois points de calage nécessaires à un redressement.
Ce que vous pouvez faire d'une tâche
Les boutons à gauche de chaque ligne apparaissent et disparaissent selon ce qu'est la tâche. Rien n'est grisé ; le bouton n'est simplement pas là.
| Bouton | Quand il est là, et ce qu'il fait |
|---|---|
| Download | Tâches d'export, et tâches de rapport (voir Tâches de rapport), et seulement une fois Completed. Un export enregistre le résultat dans un zip nommé d'après le titre de la tâche. Un import n'a rien à télécharger, il n'a donc jamais ce bouton. |
| Cancel | Tant que la tâche est Pending ou Busy. Il marque la tâche annulée et supprime son dossier de travail. |
| Delete | Une fois la tâche Completed, Failed ou Cancelled, et seulement tant que vous n'en avez pas déjà demandé la suppression. |
| View Details | Toujours. Il ouvre la fiche complète de la tâche : ce qui lui a été demandé, quand elle a commencé et fini, combien de fois le résultat a été téléchargé, et tout message que la tâche a laissé. |
| Delete all | La corbeille à droite de la barre d'outils. Elle vide l'onglet que vous regardez - sur l'onglet All, en tant qu'administrateur, cela signifie les tâches de tous les utilisateurs. Les tâches en cours de traitement sont épargnées. |
Annuler une tâche déjà démarrée n'est pas toujours immédiat
Annuler quelque chose encore Pending est net : ce ne sera jamais repris. Annuler quelque chose déjà Busy marque la ligne aussitôt, mais le programme peut être depuis plusieurs minutes en train d'écrire un fichier, et seule la génération de rapport vérifie réellement une annulation en cours de route et jette sa sortie. Comprenez un export ou un import annulé comme « le résultat a disparu », pas comme « le serveur s'est arrêté à la seconde ».
Supprimer une tâche
Supprimer ne retire pas la tâche sur-le-champ. Cela marque la ligne, l'étiquette de statut passe à Pending deletion, et le bouton de suppression disparaît pour que vous ne puissiez pas demander deux fois. Le programme retire ensuite le dossier de la tâche du serveur et ne retire la ligne qu'après, de sorte que la disparition de la ligne de votre liste est le signe que les fichiers ont réellement disparu.
Supprimer une tâche ne rend jamais ce qu'elle a utilisé. La tâche est seulement masquée : elle compte toujours dans les chiffres du mois sur votre tableau de bord et dans le quota mensuel de votre abonnement, de sorte que supprimer des tâches pour en lancer de nouvelles ne remet pas le mois à zéro.
Cela prend généralement quelques secondes. Si le programme ne tourne pas, une tâche peut rester sur Pending deletion aussi longtemps qu'elle reste sur Pending - même cause, même remède.
Une tâche qu'un programme est en train de traiter, Busy, ne peut pas être supprimée du tout. Annulez-la d'abord, ou attendez.
Une tâche peut se terminer et avoir malgré tout quelque chose à vous dire
Une tâche ne fait pas que réussir ou casser. Elle peut faire l'essentiel de ce que vous avez demandé et signaler ce qu'elle n'a pas pu faire, et la boîte de dialogue des détails montre cette différence :
- Ambre, intitulé Notice. La tâche est Completed. Quelque chose y a été laissé de côté, et ceci dit quoi.
- Rouge, intitulé Error. La tâche a Failed et n'a rien produit.
Dans la liste, une telle tâche affiche Completed with warnings, en ambre, plutôt que Completed. Survolez-la (sur un téléphone, maintenez le doigt dessus) pour lire l'avis, et ouvrez View Details pour le texte complet ; le rapport ligne par ligne d'un import arrive par courriel.
Les deux avis les plus courants méritent d'être reconnus.
Un export vers un format qui ne peut contenir qu'une seule forme à la fois - un shapefile en général - exporte les enregistrements correspondant au type de géométrie de la couche et laisse le reste de côté. L'avis dit combien, et un fichier nommé excluded_records.csv dans le téléchargement les nomme un à un, avec la raison. Choisir un format qui stocke des géométries mixtes, comme GeoPackage, GeoJSON ou KML, évite entièrement le problème.
Un import dont des lignes ont été rejetées se termine quand même, et charge tout ce qui était bon. L'avis dit combien de lignes ont été écartées. Le rapport ligne par ligne n'est pas dans l'application du tout - il est joint au courriel de fin, et c'est la seule copie, car le dossier de préparation dont il vient est vidé dès que l'import réussit. Si vous comptez corriger les lignes rejetées et réessayer, gardez ce courriel.
Les courriels
Les imports, les exports et les rapports vous envoient chacun un courriel au démarrage et un autre à la fin, pour que vous n'ayez pas à surveiller la liste. Les tâches de géoréférencement n'envoient rien.
Le courriel de fin d'un export porte un lien de téléchargement qui fonctionne sans être connecté. C'est ce qui le rend pratique, et c'est aussi pourquoi ce courriel doit être traité comme le fichier lui-même : toute personne à qui vous le transférez peut récupérer les données.
Quand une tâche échoue
Le message d'une tâche en échec est écrit pour vous, pas pour le serveur. Les chemins, les noms d'hôtes, les réglages et les traces d'appels sont retirés avant l'enregistrement : ce qui reste dit quel genre de chose a mal tourné sans dire où. Il se termine par le numéro de la tâche, sous la forme (job #35 - details are in the services log).
Ce numéro est l'essentiel. L'histoire complète de l'échec est sur le serveur, et citer le numéro de tâche est ce qui permet à un administrateur de la retrouver d'un coup. Quand vous signalez une tâche en échec, donnez le numéro.
Causes courantes sur lesquelles vous pouvez agir vous-même :
- Un fichier que l'import n'a pas pu lire. Un format non pris en charge, un zip auquel manque une des pièces qu'exige un shapefile, ou du texte dans un encodage que le lecteur n'attendait pas.
- Un format qui ne peut pas contenir les données. Voir l'avis ci-dessus - mais si rien dans la couche ne correspond, l'export échoue franchement au lieu de se terminer avec un avis.
- Une limite mensuelle. Les exports sont décomptés d'un quota qui dépend de votre abonnement. Au-delà, la tâche est refusée au moment où vous la lancez, avec un message donnant le quota et ce que vous en avez consommé, plutôt que d'échouer plus tard.
Il n'y a pas de bouton pour relancer un import ou un export. Reprenez le travail depuis son propre assistant. Les tâches de géoréférencement font exception : elles en ont un, décrit ci-dessous.
Tâches de rapport
La liste des rapports est une autre boîte de dialogue de même forme, avec deux différences qui comptent :
- Une tâche de rapport produit toujours un seul fichier, quel que soit le nombre d'enregistrements couverts. Une fois la tâche Completed, sa ligne a son propre bouton de téléchargement, et l'œil (View) ouvre le détail de la tâche, qui montre le fichier avec sa taille.
- Cancel n'apparaît que tant que la tâche est Busy. Un rapport encore en attente ne peut pas être annulé - supprimez-le à la place.
Les colonnes décrivent le rapport plutôt qu'un fichier : quel rapport a été exécuté, sur quelle couche, le filtre et l'ordre de tri utilisés, et combien d'enregistrements il a couverts.
Tâches de géoréférencement
Le géoréférencement a sa propre liste, ouverte depuis Pièces jointes ou depuis le panneau de géoréférencement. C'est la seule qui possède un bouton Re-queue, qui remet une tâche dans la file pour être redressée à nouveau. Il apparaît quand la tâche est Done, Failed ou Missing Points et que l'image a au moins trois points de calage - en dessous de trois il n'y a rien avec quoi réessayer, ajoutez donc d'abord des points. Il faut aussi Allow sur la couche de la tâche : avec Visible seul, la liste est en lecture seule.
La colonne Error montre un message d'échec en ligne, raccourci, l'intégralité étant dans l'infobulle. Il n'est affiché que pour Failed et Missing Points : une tâche réussie peut aussi porter une note de l'étape de redressement, et c'est un diagnostic, pas un défaut.
Il n'y a pas de téléchargement ici. Ce qu'une tâche de géoréférencement produit, c'est l'image redressée elle-même, qui apparaît sur la carte. Voir Images géoréférencées.
Si quelque chose semble anormal
| Ce que vous voyez | Ce que cela signifie |
|---|---|
| Toutes les tâches restent sur Pending et rien ne bouge | Le programme qui exécute les tâches ne tourne pas. Cela concerne tout le monde, pas seulement vous, et seul un administrateur peut le démarrer. |
| Une tâche est Busy depuis longtemps | Données volumineuses ou compliquées. Surveillez la colonne de progression ; sur un import elle avance par paliers plutôt que régulièrement. |
| Une tâche est repassée de Busy à Pending toute seule | Le programme qui la traitait s'est arrêté. La tâche a été récupérée et sera relancée. Le message porté dessus le dit. |
| Pas de bouton Download sur une tâche terminée | C'est un import. Les imports modifient une couche ; il n'y a pas de fichier à récupérer. |
| Pas de bouton Delete sur une tâche | Soit un programme la traite, soit vous en avez déjà demandé la suppression et l'étiquette indique maintenant Pending deletion. |
| Une ligne qui affiche Pending deletion et y reste | Le nettoyage est fait par le programme de traitement. S'il ne tourne pas, les suppressions attendent comme tout le reste. |
| Completed with warnings | La tâche a fonctionné et quelque chose a été laissé de côté. Lisez l'avis - pour un export le détail est dans excluded_records.csv à l'intérieur du téléchargement, pour un import il est joint au courriel. |
| Un message d'erreur qui ne nomme ni fichier ni serveur | C'est voulu. Les détails serveur sont retirés. Citez le numéro de tâche dans le message à votre administrateur. |
| L'export a été refusé dès son lancement | Le quota mensuel d'enregistrements de votre abonnement est épuisé. Le message donne les chiffres. |
| Des en-têtes de colonnes qui ne trient pas | Il n'y a pas de tri dans ces listes. Utilisez la ligne de filtres et la plage de dates. |
| Un avertissement nommant des colonnes qui n'ont pas pu être filtrées | Ces filtres n'ont pas été appliqués. Les lignes à l'écran sont plus larges que ce que vous avez demandé - restreignez-les autrement. |
| La notification d'un import n'a pas proposé Add to workspace | Vous n'étiez pas sur la carte, la couche était déjà dans votre espace de travail et affichée, ou l'import a été fait dans un autre de vos comptes. |
| Pas d'onglet All | Il n'existe que pour les administrateurs du site. |
Voir aussi
- Importer des couches - d'où vient une tâche d'import
- Exporter des couches - d'où vient une tâche d'export, et ce que les formats peuvent contenir
- Rapports - exécuter un rapport, et le fichier qu'il produit
- Images géoréférencées - points de calage, redressement, et la remise en file
- Filtres de colonne - la ligne de filtres sous les en-têtes
