hlacos / joboquent
用于存储排队作业状态和历史的简单包。
dev-master
2014-10-06 13:58 UTC
Requires
- php: >=5.4.0
- illuminate/support: 4.2.*
This package is auto-updated.
Last update: 2024-09-13 22:38:38 UTC
README
基于 Eloquent 的 Laravel 作业
目前处于开发阶段,不建议在生产环境中使用!
安装步骤
- 将包添加到 composer: "hlacos/joboquent": "dev-master"
- 运行 composer install
- 将服务提供者添加到提供者列表: 'Hlacos\Joboquent\JoboquentServiceProvider'
- php artisan migrate --package="hlacos/joboquent"
- php artisan db:seed --class="Hlacos\Joboquent\JobStatusTableSeeder"
用法
创建新作业并运行
通常在控制器中创建。
$job = new JobModel; $job->name = 'Export customers'; $job->save(); $job->run('MyJob');
run 方法的字符串参数是下一步中 Worker 的类名。
扩展 JobModel
您可以根据需要扩展此模型,只需阅读 Worker 中的扩展模型部分即可。
创建工作进程
扩展 Job 以编写自己的工作代码
use Hlacos\Joboquent\Job; class MyJob extends Job { // Callbacks public function beforeStart() {} public function beforeEnd() {} // The working code public function work() {} }
工作进程使用扩展的 JobModel
只需重写 $jobModelClass 公共属性名称为扩展类名称。
回调
- beforeStart: 在工作方法之前运行。您可以初始化数据或清理数据库...
- beforeEnd: 在删除队列作业之前运行。您可以触摸相关模型的时间戳或将创建的文件移动到其公共文件夹...
设置当前百分比
通常用于循环中的工作方法中。
$this->jobModel->setPercent($percent);
相关模型
您可以将多态关系设置到 JobModel。
public function jobs() { return $this->morphMany('Hlacos\Joboquent\JobModel', 'jobable'); }
public function job() { return $this->morphOne('Hlacos\Joboquent\JobModel', 'jobable'); }
在它运行之前,不要忘记保存相关模型到 jobModel。
待办事项
- 重构/代码清理。