Nouveauté (Creme 1.7) : les jobs
#1
Les jobs sont un nouveau système introduit avec Creme1.7, dont le but est d'exécuter des processus en parallèle du serveur web. Cela va permettre de gommer certaines limitations qu'avait Creme jusqu'ici:
  • Certaines fonctionnalités (ex: envoi de campagnes d'e-mails) nécessitaient de lancer régulièrement des commandes (typiquement avec 'cron'). Cela posait plusieurs soucis: il faut créer ces commandes (sous Windows c'est encore plus pénible), les supprimer le jour ou l'app correspondante est désinstallée, il n'est pas possible de faire des actions qui s'exécutent à un moment exact dépendant de données utilisateur (ex: échéance d'une alerte)…
  • Certaines actions longues (ex: import de fichier CSV) étaient effectuées dans le processus serveur ; du coup cela pouvait provoquer des problèmes de timeout suivant votre configuration, et il fallait laisser la page Web ouverte le temps que l'action se finisse. De plus il n'y avait rien qui permettait de reprendre une action interrompue (en cas de coupure de courant par exemple) ou d'afficher un résultat complet de ce qui a été fait (ex: la page de résultat de l'import CSV était volatile ; elle était perdue dès qu'on fermait la page).

Le système de jobs est basé sur un gestionnaire de job (un processus qui tourne à côté du serveur Web), et qui va a son tour lancer des processus gérant les fonctionnalités décrites ci-dessus. Comme le gestionnaire communique avec Creme, il peut recalculer les échéances des jobs s'exécutant de manière récurrente (comme pour les envois d'e-mails). Comme chaque job est associé à un objet en base de données (ainsi que ses résultats), il est possible d'afficher des résultats lorsque le job est fini, ainsi que reprendre une exécution interrompue ; cela permet aussi de créer la configuration des jobs d'une app lorsqu'on l'installe (et à l'inverse de la supprimer lors d'une désinstallation).

Voici la page des jobs que peut voir un super-utilisateur :

[Image: creme17_jobs_list.png]

On voit qu'on peut désactiver un job qui nous est inutile, qu'on peut configurer certains jobs (ex: la périodicité des jobs réguliers -- comme la gestion des données externes qui va aller chercher des e-mails). Le bouton "œil" tout à droite pour chaque job permet de voir ses détails.

Si vous importez un fichier CSV/XLS, lorsque vous validez le formulaire, vous vous retrouvez sur la page détaillée du job nouvellement créé. Une barre de progression indique au fur et à mesure le nombre de fiches importées. À la fin de l'import, les résultats sont affichés, et permettent de voir les lignes du fichier qui ont provoqué des erreurs ; cerise sur le gâteau, ces erreurs peuvent être téléchargées sous forme d'un fichier au même format que le fichier initial mais avec une colonne supplémentaire pour les erreurs.

[Image: creme17_jobs_massimport.gif]
  Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)