plateau/automaton

Laravel 4.x 任务调度器

v0.3 2014-03-22 11:20 UTC

This package is not auto-updated.

Last update: 2024-09-28 16:15:21 UTC


README

Latest Stable Version Total Downloads License

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, '* * * * *');

祝您编码愉快!