Esempio n. 1
0
/**
 * Quiz periodic clean-up tasks.
 */
function quiz_cron() {
    global $CFG;
    mtrace('');

    // Since the quiz specifies $module->cron = 60, so that the subplugins can
    // have frequent cron if they need it, we now need to do our own scheduling.
    $quizconfig = get_config('quiz');
    if (!isset($quizconfig->overduelastrun)) {
        $quizconfig->overduelastrun = 0;
        $quizconfig->overduedoneto  = 0;
    }

    $timenow = time();
    if ($timenow > $quizconfig->overduelastrun + 3600) {
        require_once($CFG->dirroot . '/mod/quiz/cronlib.php');
        $overduehander = new mod_quiz_overdue_attempt_updater();

        $processto = $timenow - $quizconfig->graceperiodmin;

        mtrace('  Looking for quiz overdue quiz attempts between ' .
                userdate($quizconfig->overduedoneto) . ' and ' . userdate($processto) . '...');

        list($count, $quizcount) = $overduehander->update_overdue_attempts($timenow, $quizconfig->overduedoneto, $processto);
        set_config('overduelastrun', $timenow, 'quiz');
        set_config('overduedoneto', $processto, 'quiz');

        mtrace('  Considered ' . $count . ' attempts in ' . $quizcount . ' quizzes.');
    }

    // Run cron for our sub-plugin types.
    cron_execute_plugin_type('quiz', 'quiz reports');
    cron_execute_plugin_type('quizaccess', 'quiz access rules');

    return true;
}
Esempio n. 2
0
/**
 * Quiz periodic clean-up tasks.
 */
function quiz_cron()
{
    global $CFG;
    require_once $CFG->dirroot . '/mod/quiz/cronlib.php';
    mtrace('');
    $timenow = time();
    $overduehander = new mod_quiz_overdue_attempt_updater();
    $processto = $timenow - get_config('quiz', 'graceperiodmin');
    mtrace('  Looking for quiz overdue quiz attempts...');
    list($count, $quizcount) = $overduehander->update_overdue_attempts($timenow, $processto);
    mtrace('  Considered ' . $count . ' attempts in ' . $quizcount . ' quizzes.');
    // Run cron for our sub-plugin types.
    cron_execute_plugin_type('quiz', 'quiz reports');
    cron_execute_plugin_type('quizaccess', 'quiz access rules');
    return true;
}