Documentation du code de SPIP et de ses plugins

SPIP

queue.php

Gestion des queues de travaux

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()  : void
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()  : int
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)

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
used-by
inc_genie_dist()

Lorsqu'une tâche est à forcer

Return values
int

id of job

queue_purger()

Purger la file de tâche et reprogrammer les tâches périodiques

queue_purger() : void

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|bool

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

Dissocier une tache d'un objet

queue_unlink_job(int $id_job) : int
Parameters
$id_job : int

id de la tache à dissocier

Return values
int

resultat du sql_delete

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
uses
queue_sleep_time_to_next_job()
uses
queue_error_handler()

Pour capturer les erreurs en fin de hit

uses
queue_start_job()
uses
queue_close_job()
uses
queue_update_next_job_time()
used-by
inc_genie_dist()
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
uses
queue_is_cron_job()
uses
queue_genie_replan_job()
used-by
queue_schedule()

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
uses
taches_generales()
used-by
queue_close_job()
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
used-by
queue_schedule()
used-by
queue_error_handler()

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
uses
queue_sleep_time_to_next_job()
see
action_cron()

L'URL appelée pour déclencher le cron

used-by
f_queue()
Return values
string

queue_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


        
On this page

Search results