SUP кодерыесть задача, и я туп настолько что даже не понимаю в какую сторону копатьнужно чистить файлы в папке имена которых отсутствуют в таблецекороче дано папка с изображениямитаблица с именами есть код во вложении короче код работает когда я делаю тестовый массив с 20-50 именами, и тестовую папку с файламиНО пиздец подкрался когда я начал работать с реальными даннымибеда в том что в базе 15000 имен а в папке 10000 файлов. Как вы понимаете меня посылает нахуй хостинг потому что ресурсов я трачу миллионы тонн.я думаю надо копать в сторону pcntl_fork(). Жду советов а то уменя мозг уже болит. я в php не очень шарю, мой профиль это мордостроение.
бамп
bump
if (true){ бамп();}
>>1064508 (OP)Пошел нахуй, чурка неграмотная
>>1064508 (OP)Я тоже не силен в пхп, каккая функция сколько памяти жрет подсказать не могу. А почему бы тебе не попробовать разбить это на подзадачи, скажем js-скрипт, который шлет аякс запросы пхпшное апи. Первым запросом получаем кол-во файлов, и потом через какие то промежутки шлем запросы, обработать первые 100 файлов, потом вторые 100, и тд.
>>1067872тогда можно не js а на крон повесить всё это дело. пусть раз в минуту хуярит по 100 файлов. Другое дело что у опа какой-то странный таск с файлами, который решается похоже что k^n перебором. Типа надо заселектить 1 из k файлов, проверить есть ли он в большущей таблице из n элементов, и если нет то удалить, потом го некст и так далее. То есть ты перебираешь все файлы, и для каждого перебираешь всю базу.Нельзя этот таск повернуть так, что берешь название файла в таблице. Смотришь в папку1, если он там есть, то копируешь его в папку2. Получается линейный перебор и на выходе в папке2 у тебя будет только те файлы, которые есть в таблице. При этом цикл делается только n раз.
>>1067892>тогда можно не js а на крон повесить всё это делоА как скрипт запускаемый через крон отличит обработанный файл от не обработанного?
>>1068043>можно не js а на крон повесить всё это дело>А как скриХороший вопрос, ну можно все файлы занести 1 раз в табличку, в которой сделать столбец с пометкой, и уже работать чисто с базой.Берем первые 100 файлов из этой таблицы, смотрим есть ли они во второй, делаем что надо и помечаем их как уже отработанные. Ну и в селект включаем условие что селектим те, которые не помечены как отработанные.
>>1064508 (OP)Ебаш таблицу с именами файлов, в них колонку ishandled.Дальше генерь команду, в винде типо del file_name, в питухос такая же дрлжна быть. Дальше из пхппараши ебаш команду в операционку. В шарпе есть чето типо "exec команд".Команда отработает, генерь следующую, имя файла отмечай как удаленное. Если файл не найдет на удаление - ну и хуй с ним.Сложность - o(n) где н - 15к."Вы великолены"
Ну всмысле не удаляй, а переноси в папку zbs_files. Потом что останется в папке zashkvar_files - удаляй.Дальше извлечешь все из папки zbs_files в зашквар_фаилз>>1068203-кун
>>1067892> который решается похоже что k^n переборомУебок
>>1067892k*n, а не k^n.