/**
  * @see parent::onAfterMain()
  */
 function onAfterMain()
 {
     $cron_log_id = CValue::get("execute_cron_log_id");
     if (!$cron_log_id) {
         return;
     }
     //Mise à jour du statut du log suite à l'appel au script
     $cron_log = new CCronJobLog();
     $cron_log->load($cron_log_id);
     if (CCronJobLog::$log) {
         $cron_log->status = "error";
         $cron_log->error = CCronJobLog::$log;
         $cron_log->end_datetime = CMbDT::dateTime();
     } else {
         $cron_log->status = "finished";
         $cron_log->end_datetime = CMbDT::dateTime();
     }
     $cron_log->store();
 }
示例#2
0
    }
    if (!$sender->delete_file) {
        CAppUI::stepAjax("CEAIDispatcher-message_dispatch");
        continue;
    }
    try {
        if ($sender->_delete_file !== false) {
            $source->delFile($_filepath);
            if ($fileextension_write_end) {
                $source->delFile("{$_filepath_no_ext}.{$fileextension_write_end}");
            }
        } else {
            dispatchError($sender, $filename_excludes, $path_info);
        }
    } catch (CMbException $e) {
        CCronJobLog::$log = $e->getMessage();
        $e->stepAjax(UI_MSG_WARNING);
        continue;
    }
    CAppUI::stepAjax("CEAIDispatcher-message_dispatch");
}
fclose($file);
// Libère le verrou
$lock->release();
if ($profile) {
    $xhprof_data = xhprof_disable();
    $xhprof_root = 'C:/xampp/htdocs/xhgui/';
    require_once $xhprof_root . 'xhprof_lib/config.php';
    require_once $xhprof_root . 'xhprof_lib/utils/xhprof_lib.php';
    require_once $xhprof_root . 'xhprof_lib/utils/xhprof_runs.php';
    $xhprof_runs = new XHProfRuns_Default();
示例#3
0
$date_max = CValue::get("_date_max");
$page = (int) CValue::get("page", 0);
$where = array();
if ($status) {
    $where["status"] = "= '{$status}'";
}
if ($error) {
    $where["error"] = "LIKE '%{$error}%'";
}
if ($cronjob_id) {
    $where["cronjob_id"] = "= '{$cronjob_id}'";
}
if ($date_min) {
    $where["start_datetime"] = ">= '{$date_min}'";
}
if ($date_max) {
    $where["start_datetime"] = $date_min ? $where["start_datetime"] . "AND start_datetime <= '{$date_max}'" : "<= '{$date_max}'";
}
$log = new CCronJobLog();
/** @var CCronJobLog[] $logs */
$nb_log = $log->countList($where);
$logs = $log->loadList($where, "start_datetime DESC", "{$page}, 30");
$cronjobs = CCronJobLog::massLoadFwdRef($logs, "cronjob_id");
foreach ($logs as $_log) {
    $_log->_ref_cronjob = CMbArray::get($cronjobs, $_log->cronjob_id);
}
$smarty = new CSmartyDP();
$smarty->assign("logs", $logs);
$smarty->assign("page", $page);
$smarty->assign("nb_log", $nb_log);
$smarty->display("inc_cronjobs_logs.tpl");
 * @version  $Revision$
 * @link     http://www.mediboard.org
 */
CCanDo::checkAdmin();
$do_purge = CValue::get("do_purge");
$date_max = CValue::get("_date_max");
$months = CValue::get("months");
$max = CValue::get("max", 1);
$delete = CValue::get("delete");
if ($months) {
    $date_max = CMbDT::date("- {$months} MONTHS");
}
if (!$date_max) {
    CAppUI::stepAjax("Merci d'indiquer une date fin de recherche.", UI_MSG_ERROR);
}
$cronjob_log = new CCronJobLog();
$ds = $cronjob_log->_spec->ds;
// comptage des echanges à supprimer
$count_delete = 0;
$date_max_delete = $delete ? CMbDT::date("-6 MONTHS", $date_max) : $date_max;
$where = array();
$where["start_datetime"] = "< '{$date_max_delete}'";
$count_to_delete = $cronjob_log->countList($where);
CAppUI::stepAjax("{$cronjob_log->_class}-msg-delete_count", UI_MSG_OK, $count_to_delete);
if (!$do_purge) {
    return;
}
$query = "DELETE FROM `{$cronjob_log->_spec->table}`\r\n  WHERE `start_datetime` < '{$date_max_delete}'\r\n  LIMIT {$max}";
$ds->exec($query);
$count_delete = $ds->affectedRows();
CAppUI::stepAjax("{$cronjob_log->_class}-msg-deleted_count", UI_MSG_OK, $count_delete);
示例#5
0
$now = CMbDT::dateTime();
$cronjob = new CCronJob();
$cronjob->active = "1";
/** @var CCronJob[] $cronjobs */
$cronjobs = $cronjob->loadMatchingList();
$server_addr = get_server_var("SERVER_ADDR");
//Parcours des tâches actives
foreach ($cronjobs as $_cronjob) {
    if ($_cronjob->_servers && !in_array($server_addr, $_cronjob->_servers)) {
        continue;
    }
    //Récupération de la prochaine date d'éxécution
    $next = $_cronjob->getNextDate(1);
    $next = current($next);
    $tolerance = CMbDT::dateTime("+ 5 SECOND", $next);
    //On vérifie si le script doit être éxécuté
    if ($next <= $now && $now <= $tolerance) {
        //Log d'attente
        $cronjob_log = new CCronJobLog();
        $cronjob_log->start_datetime = $now;
        $cronjob_log->cronjob_id = $_cronjob->_id;
        $cronjob_log->status = "started";
        $cronjob_log->server_address = $server_addr;
        $cronjob_log->store();
        $_cronjob->_params["execute_cron_log_id"] = $cronjob_log->_id;
        //Lancement du processus fils pour éxécuter la requête
        $url = escapeshellarg($_cronjob->makeUrl());
        //pclose(popen("start /SEPARATE wget.exe $url -qO NUL", "r"));
        exec("wget -q {$url} &> /dev/null");
    }
}