Что пока у меня получилось, сниппет cron
Параметры вызова из адресной строки:
http://www.site.ru/cron/?cmd=start&
snippet=test
где
cmd - [ start | stop ] start - запуск crona, stop - остановить
snippet - здесь нужно указать название сниппета
сниппет можно установить на страницу например
www.site.ru/cron/
вызов снипета будет таким:
[[cron]] - если без параметра
[[cron? &snippet=`test` &cmd=’start’]] - запуск crona для сниппета "test"
Код сниппета:
<?php
global $modx;
$cmd = $_GET[’cmd’];
$snippet = $_GET[’snippet’];
$ttime = 60; //время крона в секундах
set_time_limit("0"); //отключаем лимит выполнения скрипта
ini_set("max_execution_time", "0"); //тоже самое
ignore_user_abort(true); //включаем игнор на дисконект с пользователем
$file = "cron.pid"; //файл идентификации работы скрипта
//$files = "1.txt"; //просто так
if (file_exists($file)) {
print(’Скрипт запущен! И работает...
’);
if ($cmd == stop) {
print(’Остановили сниппет
’);
unlink(’cron.pid’);
exit(’вышли’);
}
}
else {
print(’Скрипт не запущен
Запускаем скрипт
’);
fopen($file,"w");
switch ($cmd)
{
case ’start’:
print(’запустили сниппет’);
while (file_exists($file)) {
//fopen($files,"w");
$modx->runSnippet($snippet);
sleep($ttime);
}
break;
}
}
?>