Стояла передо мной задача - создавать пользователей из xml-файла, который обновляется раз в полчаса..
само добавление пользователей и парсер xml - просты, их описывать не буду. Остановлюсь именно на создании событий cron с учетом необходимости использования ядра. (подсмотрел тут)
Итак, тут: tools/users-importer.php создаю нужный скрипт, закрываю к нему доступ, чтобы никто не ломился ...
В самое начало файла-скрипта подключаем ядро продукта:
CAgent::Update(ид агента, массив параметров) при создании агента добавляем параметр ИД агента. изначально 0. При первом апуске тот 0 подменяем на полученный ИД ну и обновляем его.
1. запускаем агентов из под крона с периодом 1 минута 2. создаем агента, например
function testagentFuka($cnt=0){
file_put_contents("/var/www/mlife/data/www/bitrixtest.mlife-media.by/bitrix/php_interface/".time()."txt",print_r(array(date("d.m.Y H:i:s"),$cnt),true));
$cnt++;
sleep(125);
return 'testagentFuka("'.$cnt.'");';
}
3. ставим интервал в 2 минуты
результат, 1. во время запуска агента в таблицу пишется дата его запуска
2. агент не умирает и ничего с ним не становится. Более того он даже не запустится если в таблице агентов пришло время следующего запуска и он еще не отработал
Я вообще думал что вы так шутите между собой. А нет на полном серьезе... Не запустится он 2 раза, и не запустится он тем более с места прерывания
Если агент еще не отработал, Битрикс с ним ничего не будет делать... За исключением насколько помню есть такая штука как жадность агента (когда он должен отработать именно столько раз сколько ему отведено).
Загальский Андрей, эм....а ничего что время работы текущего агента смотрится внутри него? ессно всё выполнение скрипта со всеми агентами то как получить? ограничивая работу этого агента на n секунд\минут вы можете ЕГО продолжать работу
kopoBko, ничего не понел... Вы к тому что следующие агенты будут запускаться с какимто приколом?! Так я могу и 10 таких сделать и посчитать время выполнения и время зхапуска агентов.. но что это даст?!
Мне приходилось делать агенты которые внутри себя порождали еще кучу агентов, а те в свою очередь еще парочку... и все нормально отрабатывало и если ктото не успевал, остальные не запускаются вперед. Иначе бы у меня уже все поразваливалось и ничего не работало
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».