コード例 #1
0
ファイル: utils.php プロジェクト: phenix-factory/SPIP
/**
 * 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);
}
コード例 #2
0
ファイル: genie.php プロジェクト: loorenzooo/aslfc
/**
 * 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);
}