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

View File

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