LaravelPackages.net
Acme Inc.
Toggle sidebar
enimiste/laravel-uniqueable-jobs-l53

Laravel 5.3 uniqueable jobs support

36
1
v5.3.4
About enimiste/laravel-uniqueable-jobs-l53

enimiste/laravel-uniqueable-jobs-l53 is a Laravel package for laravel 5.3 uniqueable jobs support. It currently has 1 GitHub stars and 36 downloads on Packagist (latest version v5.3.4). Install it with composer require enimiste/laravel-uniqueable-jobs-l53. Discover more Laravel packages by enimiste or browse all Laravel packages to compare alternatives.

Last updated

Laravel 5.3 Uniqueable Jobs

Install

Require this package with composer using the following command:

composer require "enimiste/laravel-uniqueable-jobs-l53:5.3.*"

After updating composer, add the service provider to the providers array in config/app.php

Com\NickelIT\UniqueableJobs\UniqueableJobsServiceProvider::class,

And replace Illuminate\Bus\BusServiceProvider::class by Com\NickelIT\UniqueableJobs\BusServiceProvider::class

Publish migration :

php artisan queue:table
php artisan vendor:publish --tag=migrations

In your Jobs classes use Com\NickelIT\UniqueableJobs\Uniqueable instead of the default ones.
NB : This trait should be used directly in the job class and not in the base class if exists.

To ensure that a given job will be stored in the database once per model and model id you use ->unique(Model::class, $model->id) on the job instance or after calling dispatch() method like :

$u = User::first();
    $job = new DoSomething('Hello from unique job ' . $u->email);
    $job->unique(User::class, $u->id);
    dispatch($job);
    
    $job = new DoSomething('Hello from unique job ' . $u->email);
    $job->unique(User::class, $u->id);
    dispatch($job);
//In this case the job will be stored once if it was already in the db

License

The Laravel 5.3 Uniqueable Jobs is open-sourced software licensed under the MIT license

Comments