这个神奇的骚操作的出现是因为“InteractsWithQueue”这个trait。.当排队作业正在从队列中拉出, 这个[CallQueuedListener](https://github.com/laravel/framework/blob/5.8/src/Illuminate/Events/CallQueuedListener.php#L90-L104)会检查它是否在使用InteractsWithQueuetrait, 如果是的话,框架会将底层的“队列jobs”实例...
namespace App\Jobs; use App\Podcast; use Transcoder\Transcoder; use Illuminate\Bus\Queueable; use Illuminate\Queue\SerializesModels; use App\Notifications\PodcastTranscoded; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Foundation\Bus\Dispatchable; use App\Notifications\RetyingPodcastTranscode; cl...
这个神奇的骚操作的出现是因为“InteractsWithQueue”这个trait。.当排队作业正在从队列中拉出, 这个 [CallQueuedListener](https://github.com/laravel/framework/blob/5.8/src/Illuminate/Events/CallQueuedListener.php#L90-L104) 会检查它是否在使用 InteractsWithQueue trait, 如果是的话,框架会将底层的“队列jobs...
.当排队作业正在从队列中拉出, 这个[CallQueuedListener](https://github.com/laravel/framework/blob/5.8/src/Illuminate/Events/CallQueuedListener.php#L90-L104)会检查它是否在使用InteractsWithQueuetrait, 如果是的话,框架会将底层的“队列jobs”实例注入到内部。 这个“任务” 实例类似于一个包装了真正的Job类...
文章译者
namespace App\Jobs;use App\Services\Service;use Illuminate\Bus\Queueable;use Illuminate\Contracts\Queue\ShouldQueue;use Illuminate\Foundation\Bus\Dispatchable;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Queue\SerializesModels;use Illuminate\Support\Facades\Http;classSendWebhookimplementsShouldQueue{use...
.当排队作业正在从队列中拉出, 这个[CallQueuedListener](https://github.com/laravel/framework/blob/5.8/src/Illuminate/Events/CallQueuedListener.php#L90-L104)会检查它是否在使用InteractsWithQueuetrait, 如果是的话,框架会将底层的“队列jobs”实例注入到内部。
异常处理:在队列任务中,可以使用 try-catch 语句来捕获异常。当任务失败时,Laravel 会自动将失败的任务放入一个特殊的队列中,名为 “failed_jobs”。你可以在这个队列中查看失败的任务日志,以便于分析和处理。 publicfunctionhandle(){try{// 你的任务逻辑}catch(\Exception$e) {// 记录异常信息report($e);//...
如果您不在乎您的工作,可以简单地在工作中设置deleteWhenMissingModels属性,Laravel 将 [忽略丢失的模型](《Laravel 中文文档》7.x/queues#ignoring-missing-models),它不会将作业发送到 failed_jobs 表。 这可能是一个极端的情况,但是根据您要处理的作业数量的多少,这确实有助于保持环境清洁。
classRetryFailedQueueJobCommandextendsCommand{// ...publicfunctionhandle(){// 获取失败的任务$failedJobs=Artisan::call('queue:failed',['--connection'=>'redis',// 指定队列连接]);// 将失败任务重新入队foreach($failedJobsas$failedJob){Artisan::call('queue:retry',['id'=>$failedJob->id// ...