hlacos/joboquent

用于存储排队作业状态和历史的简单包。

dev-master 2014-10-06 13:58 UTC

This package is auto-updated.

Last update: 2024-09-13 22:38:38 UTC


README

基于 Eloquent 的 Laravel 作业

目前处于开发阶段,不建议在生产环境中使用!

安装步骤

  1. 将包添加到 composer: "hlacos/joboquent": "dev-master"
  2. 运行 composer install
  3. 将服务提供者添加到提供者列表: 'Hlacos\Joboquent\JoboquentServiceProvider'
  4. php artisan migrate --package="hlacos/joboquent"
  5. 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 公共属性名称为扩展类名称。

回调

  1. beforeStart: 在工作方法之前运行。您可以初始化数据或清理数据库...
  2. 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。

待办事项

  1. 重构/代码清理。