我已经检查了之前提出的问题,但没有找到我需要的解决方案。这是问题列表, Laravel 和 Laravel Forge 会返回“MaxAttemptsExceededException:”即使尝试设置为 1,异步 Laravel 作业,Laravel 作业覆盖其他作业?
我正在尝试在按钮单击事件上使用 Laravel 作业在 FFMPEG 的帮助下转换所有视频(可能以 MB 或 GB 为单位)。
在不使用 Job 的情况下,代码可以正常工作。
这是控制器的代码示例,
public function uploadSelected(Request $request)
{
$input = $request->all();
$ids = explode(',', $input['ids']);
$this->dispatch(new FTPConverting($ids, 0));
return redirect()->to('videos/ftp-videos');
}
而在工作中,手柄是这样的
public function handle()
{
foreach ($this->videos as $id) {
if (file_exists(storage_path('app/public/temp_videos/' . $id))) {
copy(storage_path('app/public/temp_videos/' . $id), storage_path('app/public/temp_videos/uploaded/' . $id));
$video = TempVideo::create([
'original_name' => $id,
'disk' => 'public',
'video_path' => 'temp_videos/uploaded/' . $id
]);
$this->video_without_watermark($video->video_path, $video->id, $video->disk);
$this->streaming_without_watermark($video->video_path, $video->id, $video->disk);
if ($video->upload_status == 'Converted') {
unlink(storage_path('app/public/temp_videos/' . $id));
unlink(storage_path('app/public/temp_videos/uploaded/' . $id));
}
}
}
}
在函数video_without_watermark
和streaming_without_watermark
中,有借助 FFMPEG 转换文件的逻辑。
请让我知道我做错了什么或可能的解决方案。
编辑 失败作业表的日志
Illuminate\Queue\MaxAttemptsExceededException:App\Jobs\FTPConverting 已尝试太多次或运行时间过长。该作业之前可能已超时。在 /var/www/html/screwbox/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:401