Фоновая обработка загрузки изображений с использованием очередей

#laravel

#laravel

Вопрос:

Итак, у меня есть веб-приложение, в котором пользователи будут отправлять очень большие файлы, и при отправке файлы ставятся в очередь для обработки серверной частью. Я хочу отправить уведомление пользователю после обработки их конкретной загрузки, но у меня возникают проблемы с поиском решения, когда одновременно отправляются несколько пользователей. Я предполагал, что могу запросить базу данных заданий, чтобы узнать, является ли это последним из этого конкретного идентификатора загрузки, но я чувствую, что есть что-то более оптимальное. Вот мой код:

     if($request->hasfile('filename'))
    {

        foreach($request->file('filename') as $file)
        {

            $name=$file->getClientOriginalName();
            $path=public_path().'/images/';

            $image = new Image;
            $image->filename = $name;
            $image->save();

            $currentID = $image->id;

            $file->move($path, str_pad($currentID, 10, '0', STR_PAD_LEFT).'-'.$name);

            AnalyzeImage::dispatch($image);
        }

     }
  

Комментарии:

1. Можете ли вы уточнить, что вы имеете в виду, говоря «у меня возникли проблемы с поиском решения, когда несколько пользователей отправляют одновременно».

2. По сути, всякий раз, когда я заканчиваю задание, я хочу проверить и посмотреть, является ли это последним заданием, поставленным в очередь конкретным пользовательским отправлением, и если оно отправляет уведомление пользователю, когда их файлы завершены. Я довольно новичок в laravel, но я полагаю, что мог бы использовать это: Queue::after(function (JobProcessed $event) { но я действительно не знаю, как различать разные представления

3. Если загружающий пользователь вошел в систему, вы можете просто связаться с ним с помощью Auth::user (), получить от него электронное письмо и отправить уведомление. Да, вы используете Queue::after