/** * Ajout d'une tache dans la file d'attente * * @param $function * The function name to call. * @param $description * A human-readable description of the queued job. * @param $arguments * Optional array of arguments to pass to the function. * @param $file * Optional file path which needs to be included for $function. * if ends with '/', will do charger_fonction($function,$file); * @param $no_duplicate * If TRUE, do not add the job to the queue if one with the same function and * arguments already exists. * @param $time * time for starting the job. If 0, job will start as soon as possible * @param $priority * -10 (low priority) to +10 (high priority), 0 is the default * @return int * id of job */ function job_queue_add($function, $description, $arguments = array(), $file = '', $no_duplicate = FALSE, $time = 0, $priority = 0) { include_spip('inc/queue'); return queue_add_job($function, $description, $arguments, $file, $no_duplicate, $time, $priority); }
/** * Replanifier une tache periodique * * @param string $function * nom de la fonction a appeler * @param int $period * periodicite en secondes * @param int $last * date du dernier appel (timestamp) * @param int $time * date de replanification * si null calculee automaitquement a partir de $last et $period * si 0 = asap mais on n'insere pas le job si deja en cours d'execution * @param int $priority * priorite * @return void */ function queue_genie_replan_job($function, $period, $last = 0, $time = null, $priority = 0) { static $done = array(); if (isset($done[$function])) { return; } $done[$function] = true; if (is_null($time)) { $time = time(); if ($last) { $time = max($last + $period, $time); } } if (!$last) { $last = $time - $period; } spip_log("replan_job {$function} {$period} {$last} {$time} {$priority}", 'queue'); include_spip('inc/queue'); // on replanifie un job cron // uniquement si il n'y en a pas deja un avec le meme nom // independament de l'argument queue_add_job($function, _T('tache_cron_secondes', array('function' => $function, 'nb' => $period)), array($last), "genie/", 'function_only', $time, $priority); }