queue.php
SPIP, Système de publication pour l'internet
Copyright © avec tendresse depuis 2001 Arnaud Martin, Antoine Pitrou, Philippe Rivière, Emmanuel Saint-James
Ce programme est un logiciel libre distribué sous licence GNU/GPL.
Table of Contents
Constants
- _DIRECT_CRON_FORCE = true
- _JQ_MAX_JOBS_EXECUTE = 200
- _JQ_MAX_JOBS_TIME_TO_EXECUTE = min($max_time, 15)
- _JQ_PENDING = 0
- _JQ_SCHEDULED = 1
Functions
- queue_add_job() : int
- Ajouter une tâche à la file
- queue_purger() : mixed
- Purger la file de tâche et reprogrammer les tâches périodiques
- queue_remove_job() : int|bool
- Retirer une tache de la file d'attente
- queue_link_job() : mixed
- Associer une tache avec un objet
- queue_unlink_job() : mixed
- Dissocier une tache d'un objet
- queue_start_job() : mixed
- Lancer une tache decrite par sa ligne SQL
- queue_schedule() : null|bool
- Exécute les prochaînes tâches cron et replanifie les suivantes
- queue_close_job() : mixed
- Terminer un job au status _JQ_PENDING
- queue_error_handler() : mixed
- Récuperer des erreurs autant que possible en terminant la gestion de la queue
- queue_is_cron_job() : bool|int
- Tester si une tâche était une tâche périodique à reprogrammer
- queue_update_next_job_time() : mixed
- Mettre a jour la date du prochain job a lancer Si une date est fournie (au format time unix) on fait simplement un min entre la date deja connue et celle fournie (cas de l'ajout simple ou cas $next_time=0 car l'on sait qu'il faut revenir ASAP)
- queue_set_next_job_time() : mixed
- Mettre a jour la date de prochain job
- queue_affichage_cron() : string
- Déclenche le cron en asynchrone ou retourne le code HTML pour le déclencher
- queue_lancer_url_http_async() : bool
- Lancer le cron via un hit http sans attendre le resultat
Constants
_DIRECT_CRON_FORCE
public
mixed
_DIRECT_CRON_FORCE
= true
_JQ_MAX_JOBS_EXECUTE
public
mixed
_JQ_MAX_JOBS_EXECUTE
= 200
_JQ_MAX_JOBS_TIME_TO_EXECUTE
public
mixed
_JQ_MAX_JOBS_TIME_TO_EXECUTE
= min($max_time, 15)
_JQ_PENDING
public
mixed
_JQ_PENDING
= 0
_JQ_SCHEDULED
public
mixed
_JQ_SCHEDULED
= 1
Functions
queue_add_job()
Ajouter une tâche à la file
queue_add_job(string $function, string $description[, array<string|int, mixed> $arguments = [] ][, string $file = '' ][, bool $no_duplicate = false ][, int $time = 0 ][, int $priority = 0 ]) : int
Les tâches sont ensuites exécutées par date programmée croissant/priorité décroissante
Parameters
- $function : string
-
The function name to call.
- $description : string
-
A human-readable description of the queued job.
- $arguments : array<string|int, mixed> = []
-
Optional array of arguments to pass to the function.
- $file : string = ''
-
Optional file path which needs to be included for $fucntion.
- $no_duplicate : bool = false
-
If TRUE, do not add the job to the queue if one with the same function and arguments already exists. If 'function_only' test of existence is only on function name (for cron job)
- $time : int = 0
-
time for starting the job. If 0, job will start as soon as possible
- $priority : int = 0
-
-10 (low priority) to +10 (high priority), 0 is the default
Tags
Return values
int —id of job
queue_purger()
Purger la file de tâche et reprogrammer les tâches périodiques
queue_purger() : mixed
queue_remove_job()
Retirer une tache de la file d'attente
queue_remove_job(int $id_job) : int|bool
Parameters
- $id_job : int
-
id de la tache a retirer
Return values
int|boolqueue_link_job()
Associer une tache avec un objet
queue_link_job(int $id_job, array<string|int, mixed> $objets) : mixed
Parameters
- $id_job : int
-
id de la tache a lier
- $objets : array<string|int, mixed>
-
peut être un simple tableau array('objet'=>'article','id_objet'=>23) ou un tableau composé de tableaux simples pour lieur plusieurs objets en une fois
queue_unlink_job()
Dissocier une tache d'un objet
queue_unlink_job(int $id_job) : mixed
Parameters
- $id_job : int
-
id de la tache à dissocier
Tags
queue_start_job()
Lancer une tache decrite par sa ligne SQL
queue_start_job(array<string|int, mixed> $row) : mixed
Parameters
- $row : array<string|int, mixed>
-
describe the job, with field of table spip_jobs
Return values
mixed —return the result of job
queue_schedule()
Exécute les prochaînes tâches cron et replanifie les suivantes
queue_schedule([array<string|int, mixed> $force_jobs = null ]) : null|bool
Prend une par une les tâches en attente et les lance, dans la limite d'un temps disponible total et d'un nombre maxi de tâches
La date de la prochaine tâche à exécuter est mise à jour après chaque chaque tâche finie afin de relancer le scheduler uniquement quand c'est nécessaire
Parameters
- $force_jobs : array<string|int, mixed> = null
-
list of id_job to execute when provided
Tags
Return values
null|bool —- null : pas de tâche à réaliser maintenant
- false : pas de connexion SQL
- true : une planification a été faite.
queue_close_job()
Terminer un job au status _JQ_PENDING
queue_close_job(array<string|int, mixed> &$row, int $time[, int $result = 0 ]) : mixed
- le reprogrammer si c'est un cron
- supprimer ses liens
- le detruire en dernier
Parameters
- $row : array<string|int, mixed>
- $time : int
- $result : int = 0
Tags
queue_error_handler()
Récuperer des erreurs autant que possible en terminant la gestion de la queue
queue_error_handler() : mixed
Tags
queue_is_cron_job()
Tester si une tâche était une tâche périodique à reprogrammer
queue_is_cron_job(string $function, string $inclure) : bool|int
Parameters
- $function : string
-
Nom de la fonction de tâche
- $inclure : string
-
Nom de l'inclusion contenant la fonction
Tags
Return values
bool|int —Périodicité de la tâche en secondes, si tâche périodique, sinon false.
queue_update_next_job_time()
Mettre a jour la date du prochain job a lancer Si une date est fournie (au format time unix) on fait simplement un min entre la date deja connue et celle fournie (cas de l'ajout simple ou cas $next_time=0 car l'on sait qu'il faut revenir ASAP)
queue_update_next_job_time([int $next_time = null ]) : mixed
Parameters
- $next_time : int = null
-
temps de la tache ajoutee ou 0 pour ASAP
Tags
queue_set_next_job_time()
Mettre a jour la date de prochain job
queue_set_next_job_time(int $next) : mixed
Parameters
- $next : int
queue_affichage_cron()
Déclenche le cron en asynchrone ou retourne le code HTML pour le déclencher
queue_affichage_cron() : string
Retourne le HTML à ajouter à la page pour declencher le cron ou rien si on a réussi à le lancer en asynchrone.
Un verrou (cron.lock) empêche l'exécution du cron plus d'une fois par seconde.
Tags
Return values
stringqueue_lancer_url_http_async()
Lancer le cron via un hit http sans attendre le resultat
queue_lancer_url_http_async(string $url_cron) : bool
Parameters
- $url_cron : string
Return values
bool —: true si l'url a pu être appelée en asynchrone, false sinon