我按照文档创建了一个作业,并在我的handle()中强制失败:
throw new \Exception("Error Processing the job", 1);
Run Code Online (Sandbox Code Playgroud)
结果是预期的失败作业,但失败的作业没有显示在 failed_job 表中。处理时,它会显示在作业表中。
[2020-12-15 07:37:18][6] Processing: App\Jobs\IntroEmailJob
[2020-12-15 07:37:18][6] Failed: App\Jobs\IntroEmailJob
Run Code Online (Sandbox Code Playgroud)
拉拉维尔 8.0
编辑:在日志中找到这个:
General error: 1364 Field 'uuid' doesn't have a default value
Run Code Online (Sandbox Code Playgroud)
我按照文档的解释创建了 failed_jobs 表:
php artisan queue:failed-table
php artisan migrate
Run Code Online (Sandbox Code Playgroud)
小智 10
我将 failed_jobs 表中的 uuid 字段更改为默认值 Null,现在它可以工作了。
您需要在文件中添加一个driver
带有值的参数,因为它将在此处进行检查。database-uuids
~/app/config/queue.php
'failed' => [
'driver' => 'database-uuids',
'database' => env('DB_CONNECTION', 'mysql'),
'table' => 'failed_jobs',
],
Run Code Online (Sandbox Code Playgroud)
然后 Laravel 将使用DatabaseUuidFailedJobProvider
它来创建 UUID。
接下来您将用于php artisan queue:retry YOUR_UUID
重试失败的作业。
归档时间: |
|
查看次数: |
13172 次 |
最近记录: |