dev-master
9999999-dev https://github.com/peopleperhour/yii2-cronjobscronjobs scheduler for yii2
BSD-3-Clause
The Requires
extension yii2 scheduler cron cronjobs
Wallogit.com
2017 © Pedro Peláez
cronjobs scheduler for yii2
Easiest way to put crontab on your console scripts., (*1)
This extension is based on this repo for yii1 and this for yii2., (*2)
The peopleperhour package adds some more features such as 1) extra logging 2) correct cron-tags functionality, (*3)
Either run, (*4)
php composer.phar require --prefer-dist peopleperhour/yii2-cronjobs "dev-master"
or add, (*5)
"peopleperhour/yii2-cronjobs": "dev-master"
to the require section of your composer.json file.
- Step 2: Set aliase @runnerScript in console config. This absolutely path to runner script (I can not find another way to get runner script).
Change path to runner script as your project., (*6)
Yii::setAlias('@runnerScript', dirname(dirname(dirname(__FILE__))) .'/yii');
'controllerMap' => [
'cron' => [
'class' => 'peopleperhour\cronjobs\CronController'
],
],
* * * * * /path/to/yii/application/protected/yii cron
Add in params array with cron sets:, (*7)
'params' => [
'test/example1' => [
'cron' => '* * * * *',
],
'test/example2' => [
'cron' => '10 * * * *',
],
],
There are two levels of logging provided., (*8)
a) Log the output of the cron mechanism, (*9)
Logs events coming into the cron mechanism., (*10)
Sample Output:, (*11)
2015-06-11 09:48:36 [-][-][-][info][cronjobs] Running task [1]: runtestcron test in /var/www/vendor/peopleperhour/yii2-cronjobs/CronController.php:260 2015-06-11 09:48:36 [-][-][-][info][cronjobs] Runned 1 task(s) at Thu, 11 Jun 2015 09:48:36 +0000 in /var/www/vendor/peopleperhour/yii2-cronjobs/CronController.php:264, (*12)
Set up:, (*13)
In your config, set the below in your log component:, (*14)
'components' => [
'log' => [
'targets' => [
[
'class' => 'yii\log\FileTarget',
'logFile' => 'somelogfile.log',
'categories' => ['yii2-cronjobs']
],
],
],
]
The "categories" element is the default category used in the peopleperhour/yii2-cronjobs extension. If you want to change it then enter the name desired above and also set the logsCategory field in the controllerMap., (*15)
eg., (*16)
'controllerMap' => [
'cron' => [
'class' => 'peopleperhour\cronjobs\CronController',
'logsCategory' => 'somenewcategory',
],
],
b) Log the output of commands running, (*17)
There are two ways to log the output of the commands running., (*18)
First is the catchall way, where you add the filename to your controllerMap., (*19)
eg, (*20)
'controllerMap' => [
'cron' => [
'class' => 'peopleperhour\cronjobs\CronController',
'logFileName' => 'somelog',
],
],
Secondly you can specify the output of each cron command specifically by changing the cron specification using the "cron-stdout" directive., (*21)
'params' => [
'test/example1' => [
'cron' => '* * * * *',
'cron-stdout' => 'example1-out',
'cron-stderr' => 'example1-err'
],
'test/example2' => [
'cron' => '10 * * * *',
],
],
The above will overwrite the catchall output of the controllerMap and send the output to the cron-stdout specified log file., (*22)
Should you need to separate environments when running your crons you can add a cron-tags parameter to the cron config, (*23)
'params' => [
'test/example1' => [
'cron' => '* * * * *',
'cron-stdout' => 'example1-out',
'cron-stderr' => 'example1-err'
'cron-tags' => 'live staging'
],
],
Then run your cron command with the tag requested inside your scheduler, (*24)
eg, (*25)
* * * * * /path/to/yii/application/protected/yii cron live
cronjobs scheduler for yii2
BSD-3-Clause
extension yii2 scheduler cron cronjobs