#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