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