У меня есть приложение для Android и IOS, которое загружает изображения (около 15 000 в минуту) в корзину AWS S3, все в порядке, но мне нужно обработать эти изображения в веб-приложении, которое используют от 2 до 50 разных пользователей. называемый «Monitores», когда пользователь такого рода входит в систему и начинает обрабатывать изображения, приложение сканирует область S3 на наличие имен файлов, что-то вроде:
$recibidos = Storage::disk('s3recibidos');
$total_archivos = $recibidos->allfiles();
это генерирует массив с файлами, которые хранятся во время вызова маршрута, если я использую это с одним пользователем для процесса, проблем нет, потому что процесс только один раз, но что если у меня 2 или больше пользователи запускают этот процесс? процесс не возвращает точный список, но я думаю, что многие необработанные файлы будут продублированы.
Процесс имен файлов заключается в сохранении в базе данных и перемещении в подкаталог.
Например:
У меня есть 1000 файлов в корзине AWS S3, и user1 вызывает процесс, поэтому массив будет иметь 1000 имен файлов для обработки, сейчас время обработки этих файлов составляет около 3 минут, поэтому до завершения процесса было добавлено 1000 новых файлов к корзине AWS S3 эти файлы не находятся в массиве user1, затем user2 входит в систему и начинает обрабатывать, поэтому прямо сейчас AWS S3 имеет новые файлы и старые файлы, затем, когда get новый массив, получает некоторые старые имена файлов (те, которые не являются процесс), фактически, когда пользователь user2 обрабатывает файлы, часть этого была недоступна, потому что процесс user1 был выполнен заданием.
Мне нужна помощь в этих двух вещах:
1.- Как бороться с процессом.
2.- Как я могу использовать подстановочные знаки, потому что один из финальных процессов меняет имя файла файлов в S3, поэтому список имен файлов, который мне нужно обработать, имеет свой конкретный формат.
Спасибо за любой совет