enimiste / laravel-uniqueable-jobs-l54
Laravel 5.4 uniqueable jobs support
Requires
- php: >= 7.1.3
- laravel/framework: 5.6.*
README
Install
Require this package with composer using the following command (Laravel 5.6) :
composer require "enimiste/laravel-uniqueable-jobs-l54:5.6.*"
For Laravel 5.4 :
composer require "enimiste/laravel-uniqueable-jobs-l54:5.4.*"
After updating composer, add the service provider to the providers
array in config/app.php
Com\NickelIT\UniqueableJobs\UniqueableJobsServiceProvider::class,
Publish migration :
php artisan queue:table php artisan vendor:publish --tag=migrations
In your Jobs classes use Com\NickelIT\UniqueableJobs\Dispatchable
and 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(); DoSomethingJob::dispatch('Hello from unique job ' . $u->email) ->unique(User::class, $u->id); DoSomethingJob::dispatch('Hello from unique job ' . $u->email) ->unique(User::class, $u->id); //In this case the job will be stored once if it was already in the db
License
The Laravel Uniqueable Jobs is open-sourced software licensed under the MIT license