Yii2 Cron job Manager ¶
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',
],
],
.
If you have any questions, please ask in the forum instead.
Signup or Login in order to comment.