示例#1
0
/**
 * Run scheduled callbacks or spawn cron for all scheduled events.
 *
 * @since 2.1.0
 *
 * @return null When doesn't need to run Cron.
 */
function nxt_cron()
{
    // Prevent infinite loops caused by lack of nxt-cron.php
    if (strpos($_SERVER['REQUEST_URI'], '/nxt-cron.php') !== false || defined('DISABLE_nxt_CRON') && DISABLE_nxt_CRON) {
        return;
    }
    if (false === ($crons = _get_cron_array())) {
        return;
    }
    $local_time = time();
    $keys = array_keys($crons);
    if (isset($keys[0]) && $keys[0] > $local_time) {
        return;
    }
    $schedules = nxt_get_schedules();
    foreach ($crons as $timestamp => $cronhooks) {
        if ($timestamp > $local_time) {
            break;
        }
        foreach ((array) $cronhooks as $hook => $args) {
            if (isset($schedules[$hook]['callback']) && !call_user_func($schedules[$hook]['callback'])) {
                continue;
            }
            spawn_cron($local_time);
            break 2;
        }
    }
}
示例#2
0
/**
 * Run scheduled callbacks or spawn cron for all scheduled events.
 *
 * @since 2.1.0
 *
 * @return null When doesn't need to run Cron.
 */
function nxt_cron()
{
    // Prevent infinite loops caused by cron page requesting itself
    $cron_uri = parse_url(backpress_get_option('cron_uri'));
    if (strpos($_SERVER['REQUEST_URI'], $cron_uri['path']) !== false || defined('DISABLE_nxt_CRON') && DISABLE_nxt_CRON) {
        return;
    }
    if (false === ($crons = _get_cron_array())) {
        return;
    }
    $local_time = time();
    $keys = array_keys($crons);
    if (isset($keys[0]) && $keys[0] > $local_time) {
        return;
    }
    $schedules = nxt_get_schedules();
    foreach ($crons as $timestamp => $cronhooks) {
        if ($timestamp > $local_time) {
            break;
        }
        foreach ((array) $cronhooks as $hook => $args) {
            if (isset($schedules[$hook]['callback']) && !call_user_func($schedules[$hook]['callback'])) {
                continue;
            }
            spawn_cron($local_time);
            break 2;
        }
    }
}