rossmann-it / yii2-cron
Flexible cron tasks manager for the Yii2 Framework
Installs: 17 177
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 5
Forks: 70
Type:yii2-module
Requires
- php: >=5.6.0
- mtdowling/cron-expression: ^1.1
- yiisoft/yii2: ^2.0.6
- yiisoft/yii2-bootstrap: ^2.0.5
Requires (Dev)
- phpunit/phpunit: ^4.0
README
This is a flexible tasks manager designed for MVC-type applications. It's used instead of standard linux crontab command.
The purpose of this tool is to provide an easy way to manipulate repetitive tasks.
Live Demo of original project by multimate
How this works
Replace all tasks in crontab file with one which will invoke method TaskRunner::checkAndRunTasks()
.
Import tasks from current crontab file or add them manually. Active tasks will run one by one if current time matches with the task's time expression. Output of tasks can be handled. For each execution will be assigned status:
- Success if method returned
true
; - Error if method returned
false
or an exception was caught; - Started if task is running or wasn't ended properly.
Features
- Works with any storage engines
- Flexible implementation with interfaces
- Disable, enable and run tasks through tool interface
- Handle tasks output however you want
- Time expression helper shows next run dates
- Monitor runs results
- Export and import tasks from crontab
- Add needed method for new task from dropdown
Installation
Install package via Composer
composer require rossmann-it/yii2-cron
Requirements
- PHP 5.4 or above
- mtdowling/cron-expression
Configure
- Create tables if you want to store data in database (use Yii migration)
- Implement
TaskInterface
andTaskRunInterface
or use predefined classes from the Example folder - Copy and modify controller and views. Or create your own.
- Import tasks through interface or add them manually
- Add new line into crontab file that will invoke
TaskRunner::checkAndRunTasks()
- Disable tasks that will be invoked through the manager
- Make sure that manager is not publicly available