Для создания очереди создадим метода в файле /dev/cron.php
<?php
public function log($text){
FotonLog($text,'F');
echo $this->cli->green('Данные записаны в файл')."
";
}
Затем вызовем в любом месте, где есть доступ к методам ядра метод
$this→core→cron(‘log’,[‘тестовый текст’],”s:2”);
Первый аргумент – это название метода, далее в массиве перечисляются аргументы, которые нужно передать этому методу, далее указываем частоту вызова.
У нас указано s:2 – это значит, что запись в лог будет производиться каждые 2 секунды, m:2 – каждые 2 минуты,H:5 – каждые 5 часов и т.д.
Далее один раз запускаем выполнение метода.
Если все прошло успешно в директории /system/cron/s/2 должен появится файл с сериализованными данными
Теперь запустим через командную строку следующую команду:
php foton cron
Мы должны будем увидеть через каждые 2 секунды сообщение о записи, а также увидим наши записи в главной файле логов /.logs/mylogs.!?
Если в вызов мы добавим в конце число и вызовем метод cron
$this→core→cron(‘log’,[‘тестовый текст’],”s:2”,3);
у нас запустится команда на выполнение только 3 раза, после чего она самостоятельно удалится.
Также мы можем удалить все обработчики, после того как они выполнятся например 5 раз, для этого вызовем команду из консоли:
php foton cron del 5
Если мы хотим запустить по несколько пакетов за раз укажем количество
php foton cron 2 (обработка по 2 пакета за раз с 0 пакета каждую секунду)
Если мы хотим запустить очередь с определенного шага укажем его
php foton cron 1 5 (по одному пакету начиная с 5)
Лучше указывать количество времени на обработку одного запроса, так меньше вероятности что накопится много параллельных процессов и они упадут
php foton cron 1 0 12 (по одному пакету в очереди начиная с 0 каждые 12 секунд)
php foton cron delwork log (удалит все cron команды метода log)
Нам нужно удалить старую очередь для чистоты эксперимента, поэтому запустим php foton cron del 1, далее очистим файл логов, вызовем
$this→core→cron(‘log’,[‘тестовый текст’],”s:2”,3);
и запустим php foton cron, после этого в файле логов должны появится 3 наших записи, а сама очередь будет удалена.