/** * @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(); }
} 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();
$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);
$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"); } }