In some cases, we want to perform some action when job has failed. For example, send an email or a notification.
For this purpose, we can use failed()
method in the job class, just like the handle()
method:
namespace App\Jobs\Invoice;use Illuminate\Bus\Batchable;use Illuminate\Bus\Queueable;use Illuminate\Queue\SerializesModels;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Throwable; class CalculateSingleConsignment implements ShouldQueue{ use Batchable, Dispatchable, InteractsWithQueue, Queueable, SerializesModels; // ... __construct() method, handle() method, etc. public function failed(Throwable $exception) { // Perform any action here when job has failed }}
Tip given by @pauloimon