2017 © Pedro Peláez
 

library joboquent

Simple bundle to store queued jobs statuses and history.

image

hlacos/joboquent

Simple bundle to store queued jobs statuses and history.

  • Monday, October 6, 2014
  • by Hlacos
  • Repository
  • 1 Watchers
  • 0 Stars
  • 11 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 1 Versions
  • 0 % Grown

The README.md

Joboquent

Eloquent based Jobs for Laravel, (*1)

It's under development, not recommended for production use!, (*2)

Install steps

  1. add bundle to composer: "hlacos/joboquent": "dev-master"
  2. composer install
  3. add service provider to the providers list: 'Hlacos\Joboquent\JoboquentServiceProvider'
  4. php artisan migrate --package="hlacos/joboquent"
  5. php artisan db:seed --class="Hlacos\Joboquent\JobStatusTableSeeder"

Usage

Create new job and run it

Tipically it creates in the controller., (*3)

$job = new JobModel;
$job->name = 'Export customers';
$job->save();

$job->run('MyJob');

The string parameter of the run method is the class name of the Worker in the next step., (*4)

Extended JobModel

Feel free to extend this model, just read the extended model section in the worker., (*5)

Create worker

Extend Job to make your own working code, (*6)

use Hlacos\Joboquent\Job;

class MyJob extends Job {
    // Callbacks
    public function beforeStart() {}

    public function beforeEnd() {}

    // The working code
    public function work() {}
}

Worker use extended JobModel

Only override the $jobModelClass public attribute name to the Extended class name., (*7)

Callbacks

  1. beforeStart: runs before the work method. You can initialize data or clean up database...
  2. beforeEnd: runs before the queue job deleted. You can touch related models timestamps or move created files to their public folder...

Set the current percent

Tipically used in the work method in a cycle., (*8)

$this->jobModel->setPercent($percent);

You can set polimorphic relation to the JobModel., (*9)

public function jobs() {
    return $this->morphMany('Hlacos\Joboquent\JobModel', 'jobable');
}
public function job() {
    return $this->morphOne('Hlacos\Joboquent\JobModel', 'jobable');
}

Don't forget to save related model to the jobModel before it runs., (*10)

TODO

  1. Refactoring / code cleaning.

The Versions

06/10 2014

dev-master

9999999-dev

Simple bundle to store queued jobs statuses and history.

  Sources   Download

MIT

The Requires

 

laravel eloquent queue job worker