Я проверил заданные вопросы, но не нашел нужного мне решения.Вот список вопросов: Laravel & Laravel Forge возвращает «MaxAttemptsExceededException:», даже если попытки установлены в 1 , Асинхронные задания Laravel , Задание Laravel перезаписывает другие задания?
Я пытаюсь преобразовать все видео (возможно, в МБ или ГБ) с помощью FFMPEG, используя задания Laravel в событии нажатия кнопки.
Без использования заданиякод работает правильно.
Вот пример кода контроллера,
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.
Пожалуйста, дайте мне знать, что я делаю неправильно или возможное решение этой проблемы.
Редактировать Журнал таблицы невыполненных заданий
Подсветка \ Queue \ MaxAttemptsExceededException: App \ Jobs \ FTPConverting предпринималась слишком много раз или выполнялась слишком долго.Задание может быть ранее истекло.в /var/www/html/screwbox/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:401