Насильное и мгновенное выполнение агента при схеме работы "агенты на кроне"
Насильное и мгновенное выполнение агента при схеме работы "агенты на кроне"
Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Насильное и мгновенное выполнение агента при схеме работы "агенты на кроне"
С некоторых пор настоятельно рекомендую переводить выполнение всех агентов на крон. И почты тожею Я ставлю запуск раз в минуту, ничем не отличается практически от выполнения на хите. Чтобы не грузить сервер ежеминутным кроном, я снял впску с кроном за пару сотен рублей, и вешаю туда все wget'ы Но пост о другом. Итак, при такой схеме иногда требуется мгновенное выполнение агента, то есть, в конце данного хита, или, максимум. на следующем. Решается эта проблема так:
public static function OnEpilogHandler() {
if (isset($_SESSION['START_AGENT']) && !empty($_SESSION['START_AGENT'])) {
foreach ($_SESSION['START_AGENT'] as $ID) {
CAgent::ExecuteAgents('AND ID='.intval($ID));
}
unset($_SESSION['START_AGENT']);
}
}
4. Далее нам надо обработать ситуацию с LocalRedirect (единственная (за исключением die) ситуация, которая не позволяет дойти до OnEpilog на текущем хите. Собственно, код тот же самый:
public static function OnLocalRedirectHandler() {
if (isset($_SESSION['START_AGENT']) && !empty($_SESSION['START_AGENT'])) {
foreach ($_SESSION['START_AGENT'] as $ID) {
CAgent::ExecuteAgents('AND ID='.intval($ID));
}
unset($_SESSION['START_AGENT']);
}
}