Fixed failed jobs table

This commit is contained in:
Constantin Graf
2024-07-03 17:09:45 +02:00
committed by Constantin Graf
parent 4c2748ff50
commit 7fd5d25781
3 changed files with 50 additions and 3 deletions

View File

@@ -15,7 +15,7 @@ class TestJobCommand extends Command
*
* @var string
*/
protected $signature = 'test:job';
protected $signature = 'test:job {--fail}';
/**
* The console command description.
@@ -30,7 +30,9 @@ class TestJobCommand extends Command
public function handle(): int
{
$user = User::firstOrFail();
TestJob::dispatch($user, 'Test job message.');
$fail = (bool) $this->option('fail');
TestJob::dispatch($user, 'Test job message.', $fail);
return self::SUCCESS;
}

View File

@@ -5,6 +5,7 @@ declare(strict_types=1);
namespace App\Jobs\Test;
use App\Models\User;
use Exception;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
@@ -22,23 +23,29 @@ class TestJob implements ShouldQueue
private User $user;
private string $message;
private bool $fail;
/**
* Create a new job instance.
*/
public function __construct(User $user, string $message)
public function __construct(User $user, string $message, bool $fail = false)
{
$this->user = $user;
$this->message = $message;
$this->fail = $fail;
}
/**
* Execute the job.
* @throws Exception
*/
public function handle(): void
{
Log::debug('TestJob: '.$this->message, [
'user' => $this->user->getKey(),
]);
if ($this->fail) {
throw new Exception('TestJob failed.');
}
}
}

View File

@@ -0,0 +1,38 @@
<?php
declare(strict_types=1);
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
DB::table('failed_jobs')->truncate();
Schema::table('failed_jobs', function (Blueprint $table): void {
$table->dropColumn('id');
});
Schema::table('failed_jobs', function (Blueprint $table): void {
$table->id();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
DB::table('failed_jobs')->truncate();
Schema::table('failed_jobs', function (Blueprint $table): void {
$table->dropColumn('id');
});
Schema::table('failed_jobs', function (Blueprint $table): void {
$table->uuid('id')->primary();
});
}
};