Package Data | |
---|---|
Maintainer Username: | mingalevme |
Maintainer Contact: | mingalevme@gmail.com (Mingalev Mikhail) |
Package Create Date: | 2017-09-22 |
Package Last Update: | 2020-10-15 |
Home Page: | |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-15 15:11:25 |
Package Statistics | |
---|---|
Total Downloads: | 36,185 |
Monthly Downloads: | 1,001 |
Daily Downloads: | 0 |
Total Stars: | 21 |
Total Watchers: | 4 |
Total Forks: | 7 |
Total Open Issues: | 0 |
Provides support for uniqueable queues for Laravel/Lumen 5.5 and higher.
composer require mingalevme/illuminate-uqueue
In Laravel 5.5, the service provider and facade will automatically get registered.
For older versions of the framework or Lumen, follow the steps below:
Register the appropriate service provider \Mingalevme\Illuminate\UQueue\LaravelUQueueServiceProvider::class
or \Mingalevme\Illuminate\UQueue\LumenUQueueServiceProvider::class
.
If you plan to use the database as a driver you should add the migration (change the table name if necessary):
<?php // /src/migrations/2017_01_01_000002_jobs_add_uniqueable.php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class JobsAddUniqueable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
if (!Schema::hasColumn('jobs', 'unique_id')) {
Schema::table('jobs', function($table) {
$table->string('unique_id')->nullable();
$table->unique(['queue', 'unique_id'], 'jobs_queue_unique_id_unique');
});
}
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
if (Schema::hasColumn('jobs', 'unique_id')) {
Schema::table('jobs', function (Blueprint $table) {
$table->dropUnique('jobs_queue_unique_id_unique');
$table->dropColumn('unique_id');
});
}
}
}
\Mingalevme\Illuminate\UQueue\Jobs\Uniqueable
:<?php
namespace App\Jobs;
use Mingalevme\Illuminate\UQueue\Jobs\Uniqueable;
class ExampleJob implements Uniqueable
{
protected $data;
public function __construct(array $data)
{
ksort($data);
$this->data = $data;
}
public function uniqueable()
{
return md5(json_encode($this->data));
}
public function handle()
{
// ...
}
}