0

我已经检查了之前提出的问题,但没有找到我需要的解决方案。这是问题列表, 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_watermarkstreaming_without_watermark中,有借助 FFMPEG 转换文件的逻辑。

请让我知道我做错了什么或可能的解决方案。

编辑 失败作业表的日志

Illuminate\Queue\MaxAttemptsExceededException:App\Jobs\FTPConverting 已尝试太多次或运行时间过长。该作业之前可能已超时。在 /var/www/html/screwbox/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:401

4

0 回答 0