Расширение для Yii Framework добавляющее возможность удобно управлять автоматическим запуском консольных команд используя синтаксис phpDocumentor и crontab.
Возможности и преимущества
- Полностью идентичный синтаксис для Unix и Windows платформ (сходный со стандартным синтаксисом crontab)
- Установка времени запуска каждого экшена команды в отдельности, используя всего одно задание в системном планировщике
- Установка дополнительных параметров запуска (аргументы, stderr, stdout)
- Возможность отмечать каждый экшен тегами, т.е. группировать экшены в наборы команд (например для запуска разных наборов на разных серверах)
- Быстрое отключение\включение всех запланированных заданий
- Хранение расписания заданий вместе с исходными кодами приложения
Во-первых, необходимо снабдить каждый экшен, который вы желаете запускать автоматически phpDoc-комментарием похожим на этот
Код: Выделить всё
class TestCommand extends CConsoleCommand{
/**
* Это действие будет запускаться каждый третий час на двенадцатой минуте
*
* @cron 12 *\3 * * *
*/
public function actionTest(){;}
}
Далее необходимо внести изменения в конфигурацию вашего приложения, добавив директиву
Код: Выделить всё
...,
'commandMap' => array(
'cron' => 'ext.PHPDocCrontab.PHPDocCrontab'
),
...
Код: Выделить всё
* * * * * /path/to/your/application/protected/yiic cron
Требования
Необходим Yii Framework версии 1.1.6 или старше.
К пользователям
Прошу отписываться тех, кто использует много консольных команд запускаемых из планировщика или тех кто считает расширение привлекательным.
В планах добавить следующее, если кого-то заинтересует:
- Полную документацию по уже реализованным возможностям
- Улучшить работу с перенаправлением вывода (подстановки, использование алиасов Yii)
- Использовать кеш для получения списка заданий