sharkom / yii2-cron
Create Cron jobs from browser, and look that run logs
Installs: 2 966
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 0
Forks: 7
Type:yii2-extension
Requires
- dragonmantank/cron-expression: ^1.2
- kartik-v/yii2-grid: @dev
- sharkom/yii2-cronjob-widget: ^1
- symfony/process: ^5.0
- yiisoft/yii2: ~2.0.0
README
Create Cron jobs from browser, and look that run logs
Forked from vasadibt/yii2-cron with some modifications:
- Now it can run every kind of script, not only Yii2 console commands
- Added capability to have a log file in addition to DB logs
- Removed the runquick capabilities
ChangeLog 27/Feb/2023
- Add Manual Run button on cronjob page
- Add auto purge logs (use module param purge_log_interval | default 3 months)
- Fix some graphics in logs pages
ChangeLog 5/May/2023
- Added execution error mail notifications
- Added auto unlock mail notifications
- Added module param sendNotifications
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist sharkom/yii2-cron "*"
or add
"sharkom/yii2-cron": "*"
to the require section of your composer.json
file.
Migration
Run the following command in Terminal for database migration:
yii migrate/up --migrationPath=@sharkom/cron/migrations
Or use the namespaced migration (requires at least Yii 2.0.10):
// Add namespace to console config: 'controllerMap' => [ 'migrate' => [ 'class' => 'yii\console\controllers\MigrateController', 'migrationPath' => [ '@sharkom/cron/migrations', ], ], ],
Then run:
yii migrate/up
Web Application Config
Turning on the Cron Job Manager Module in the web application:
Simple example:
'modules' => [ 'cron' => [ 'class' => 'sharkom\cron\Module', 'params'=>[ 'sendNotifications'=>true, ] ], ],
Console Application Config
Turning on the Cron Job Manager Module in the console application:
Simple example:
'modules' => [ 'cron' => [ 'class' => 'sharkom\cron\Module', 'params'=>[ 'sendNotifications'=>true, ] ], ],
Schedule Config
Set the server schedule to run the following command
On Linux:
Add to the crontab with the user who you want to run the script (possibly not root) with the crontab -e
command or by editing the /etc/crontab
file
* * * * * <your-application-folder>/yii cron/cron/run 2>&1
On Windows:
Open the task scheduler and create a new task
###Email notifications
In order to recieve email notifications for execution errors you need to config:
- The module param sendNotifications to true (check Web App and Console App configuration in this readme)
- Set in common/config/params.php the parameters:
- senderEmail
- NotificationsEmail
- Configure the mailer in common/config/main-local.php
return [ 'senderEmail'=>'notifications@yourapp.net', 'NotificationsEmail'=>'notifications@yourapp.net', ];
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', // send all mails to a file by default. You have to set // 'useFileTransport' to false and configure a transport // for the mailer to send real emails. 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'encryption' => 'tls', 'host' => 'your smtp relay', 'port' => '25', 'username' => 'your user', 'password' => 'your password', ], ],
.