Dernier ajout : 15 août 2007.
fonction
$taches = array()
15 août 2007, parGestion des taches de fond
Deux difficultes :
la plupart des hebergeurs ne fournissent pas le Cron d’Unix
les scripts usuels standard sont limites a 30 secondes
Solution :
Toute connexion a SPIP s’acheve par un appel a la fonction cron()
qui appelle la fonction surchargeable genie dans inc/
Sa definition standard ci-dessous prend dans une liste de taches
la plus prioritaire, leurs dates etant donnees par leur fichier-verrou.
Une fonction executant une tache doit retourner un nombre :
nul, si la tache n’a pas a etre effecutee
positif, si la tache a ete effectuee
negatif, si la tache doit etre poursuivie ou recommencee
Elle recoit en argument la date de la derniere execution de la tache.
On peut appeler cette fonction avec d’autres taches (pour etendre Spip)
specifiee par des fonctions respectant le protocole ci-dessus
On peut modifier la frequence de chaque tache et leur ordre d’analyse
en modifiant les variables ci-dessous.
Les taches sont dans un tableau (’nom de la tache’ => periodicite) Cette fonction execute la tache la plus urgente (celle dont la date de derniere execution + la periodicite est minimale) La date de la derniere intervention est donnee par un fichier homonyme, de suffixe ".lock", modifie a chaque intervention et des le debut de celle-ci afin qu’un processus concurrent ne la demarre pas aussi. Les taches les plus longues sont tronconnees, ce qui impose d’antidater le fichier de verrouillage (avec la valeur absolue du code de retour). La fonction executant la tache est un homonyme de prefixe "genie_". Le fichier homonyme du repertoire "genie/" est automatiquement lu et il est suppose definir cette fonction.
fonction
$t
15 août 2007, parPas de fichier a part pour une fonction aussi petite :
elle peut retirer les fichiers perimes
elle fait appliquer le quota
En cas de quota sur le CACHE/, nettoyer les fichiers les plus vieux