plateau / automaton
Laravel 4.x 任务调度器
v0.3
2014-03-22 11:20 UTC
Requires
- php: >=5.3.0
- illuminate/support: 4.1.*
- mtdowling/cron-expression: 1.0.*
This package is not auto-updated.
Last update: 2024-09-28 16:15:21 UTC
README
Automaton 是为 Laravel 4 设计的任务调度器,旨在作为 CronJob 运行。它旨在运行资源密集型任务,同时提供一种用户友好的方式来跟踪任务的执行。
计划的任务存储在数据库表中,并进行了“沙箱”处理,因此任何异常都会记录到数据库中,便于调试。
安装
将以下内容添加到您的 composer.json
文件中的 require-dev
"require-dev" : {
...
"plateau/automaton": "dev-master"
}
运行更新
php composer.phar update
在 app/config/app.php
中注册控制台服务提供者
'providers' => array( ... 'Plateau\Automaton\AutomatonServiceProvider', );
注册外观
'Automaton' => 'Plateau\Automaton\AutomatonFacade', );
运行迁移
php artisan migrate --package=plateau/automaton
使用方法
配置您的 crontab 以定期运行 Automaton
* * * * * php /var/www/laravel-app/artisan automaton:run >/dev/null 2>&1
创建包含您逻辑的任务类
use Plateau\Automaton\AbstractTask;
class MyTask extends AbstractTask {
public function fire()
{
// Task logic
}
}
安排您的任务
// Parameters are accessible from the task object as $this->parameters
$parameters = array('key' => 'value');
$myTask = new MyTask;
$myTask->init($parameters);
Automaton::schedule($myTask, '2014-02-17 12:00:00');
或者,您也可以传递一个 Carbon 对象来设置日期
Automaton::schedule($myTask, Carbon::now->addHours(2));
安排 Cron 作业
如果您需要定期运行任务,可以向调度器传递 cron 表达式
// Run a task every minute
Automaton::cron($myTask, '* * * * *');
祝您编码愉快!