Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Но пост о другом.
Итак, при такой схеме иногда требуется мгновенное выполнение агента, то есть, в конце данного хита, или, максимум. на следующем. Решается эта проблема так:
1. Добавляем агент:
2. Ниже под ним такой код:
3. Далее вешаем обработчик на :
4. Далее нам надо обработать ситуацию с (единственная (за исключением die) ситуация, которая не позволяет дойти до OnEpilog на текущем хите. Собственно, код тот же самый:
Все.
За спасибо Дмитрию Бану.
Назад в раздел
Наверх
то ждем ваше обращение в нашей службе тех поддержки.
Насильное и мгновенное выполнение агента при схеме работы "агенты на кроне"
С некоторых пор настоятельно рекомендую переводить . И почты тожею Я ставлю запуск раз в минуту, ничем не отличается практически от выполнения на хите. Чтобы не грузить сервер ежеминутным кроном, я снял впску с кроном за пару сотен рублей, и вешаю туда все wget'ы
Но пост о другом.Итак, при такой схеме иногда требуется мгновенное выполнение агента, то есть, в конце данного хита, или, максимум. на следующем. Решается эта проблема так:
1. Добавляем агент:
$ID = CAgent::AddAgent('MyAgent('.$arFields['ID'].', true);', '', 'N', 1); |
if ($ID) {
if (!isset($_SESSION['START_AGENT']) || !is_array($_SESSION['START_AGENT'])) {
$_SESSION['START_AGENT'] = array();
}
$_SESSION['START_AGENT'][] = $ID;
} |
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. Далее нам надо обработать ситуацию с (единственная (за исключением 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']);
}
} |
Все.
За спасибо Дмитрию Бану.
Назад в раздел
Подписаться на новые материалы раздела:
Загрузка...
Наверх