Accueil > Documentation > Les plugins développés pour MédiaSPIP > SPIPMotion > Processus d’encodage > La file d’attente de SPIPmotion

La file d’attente de SPIPmotion

Une file d’attente stockée dans la base de donnée

Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.

Cette nouvelle table est constituée des champs suivants :

  • id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ;
  • id_document, l’identifiant numérique du document original à encoder ;
  • id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ;
  • objet, le type d’objet auquel le document encodé devra être attaché ;
  • id_auteur, l’identifiant unique de l’auteur qui a ajouté la tâche ;
  • extension, l’extension vers laquelle le document devra être encodé, cela correspond à un template d’encodage créé dans la configuration du plugin ;
  • encode, statut de l’encodage, trois valeurs sont possibles : "oui","non" (défaut),"en_cours","erreur" ;
  • infos, des informations sur l’encodage, rempli au moment de l’exécution de la tâche. Ces informations peuvent être les paramètres d’encodage, le temps d’encodage, le log d’erreur de l’encodage s’il y a lieu... ;
  • maj, la date de mise à jour de la tâche ;

Lors d’une demande de conversion de vidéo ou son, qu’elle soit automatique au chargement de chaque fichiers de ce type ou manuellement lancée par un utilisateurs, on crée une tâche dans cette table pour chaque format de conversion souhaités configuré dans la configuration du plugin.

Une file d’attente gérée par le cron

La file d’attente est gérée par le CRON de SPIP.

Il est nécessaire d’utiliser le plugin "Job Queue" car il permet de ne pas bloquer le chargement de la page lors de l’exécution de la tâche. Avec le Cron par défaut, l’utilisateur déclenchant le Cron (il est déclenché par les visites sur le site) serait sensé attendre la fin de l’encodage pour voir sa page se charger, ce qui peut prendre beaucoup de temps en fonction du fichier à encoder. "Job Queue", lui, permet d’utiliser fsockopen pour lancer la tâche et donc ne pas bloquer l’affichage.

La tâche Cron fonctionne de la sorte :

  • On vérifie la présence d’au moins un fichier à encoder qui n’est pas en erreur ;
  • On vérifie qu’il n’y ait aucun encodage en cours (valeur du champ encode à en_cours) ;
  • On vérifie que la configuration de SPIPmotion ne soit pas cassée (que les logiciels nécessaires soient accessibles) ;
  • Si ces éléments sont corrects, on lance l’encodage du premier document ;

Cette tâche est appelée toutes les 3 minutes mais reste dépendante des visites sur le site.

NB :

Si votre site a très peu de visites mais que vous avez beaucoup de fichiers à encoder, il peut être intéressant de créer une tâche Cron système sur le serveur ou une machine distante afin d’appeler l’action super_cron de "Job Queue".

On ouvre donc crontab sur le serveur ou la machine distante :

  1. crontab -e

Puis on y ajoute une ligne qui ressemble à (pensez à modifier sousdomaine.domaine.tld par l’Url de votre site maître) :

  1. * * * * * curl http://sousdomaine.domaine.tld/spip.php?action=super_cron

Ou son équivalent avec wget :

  1. * * * * * wget -O - -q -t 1 http://sousdomaine.domaine.tld/spip.php?action=super_cron

Cette ligne fera en sorte que le Cron du site soit appelé toutes les minutes par le serveur ou la machine distante (veillez à modifier http://sousdomaine.domaine.tld/ par votre nom de domaine bien entendu).

Une file d’attente visible dans l’espace privé du site

L’état de la file d’attente est visible à tout moment depuis l’interface privée du site à l’adresse ecrire/?exec=spipmotion_file ou via le bouton adéquat dans le menu d’édition.

Cette page est divisée en deux blocs distincts :

  • les documents en attente d’encodage ;
  • la liste des encodages réalisés et un outil de statistiques ;

Les documents en attente d’encodage

Cette partie de la page liste les documents en attente d’encodage par date de création de tâche. Elle permet principalement de connaître le nombre de document qui sont en attente.

Si un encodage est en erreur, il restera dans cette partie de la page et ne sera réinitialisé que sur action d’un administrateur soit en cliquant sur le bouton "Erreur" de la ligne correspondante, soit sur le bouton "Relancer tous les encodages en erreur" en fin de liste. L’utilisateur pourra également consulter le log de l’encodage en erreur afin de modifier les paramètres si nécessaire ou l’envoyer à l’administrateur du serveur, ou encore au développeur du plugin afin de pouvoir comprendre d’où vient le problème.

La liste des encodages réalisés et l’outil de statistiques

Cette partie liste l’ensemble des encodages réalisés avec un lien vers l’objet SPIP auquel le document est attaché ainsi que sa date et durée d’encodage.

Plus bas dans la page un graphique permet de consulter le nombre d’encodages par journée, permettant de constater l’évolution de l’utilisation du site.

  • Auteur :
  • Publié le :
  • Mis à jour : 25/04/11
  • Révisé par : 2 anonymes

Aucun commentaire


Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document