Обратились ко мне с просьбой пересоздать тумбы для фоток. Этих фоток 6к+. Скачать я их не могу почему-то, хостинг отдает не все. Перенарезать их все за раз тоже не могу - хостинг вешается. Доступа к php.ini нет. В такой ситуации мне пришлось разбить свой запрос на страницы и резать фотки в 50 профилях за раз. Я просто сидел как индус, запускал скрипт, менял номер в функции, опять запускал - и так 131 раз. http://joxi.ru/MAjebMYhoD512e Вопрос - как это можно было зациклить автоматом? Для выкачивания БД я использую тулзу - MySQLDumper, так вот она работает по-моему именно так, разбивает запрос на куски, и в итоге там где phpMyAdmin фейлится, упираясь в настройки php.ini, MySQLDumper всегда справляется. Я также хочу.((
можно писать номер в бд, лочить строчку на чтение, забирать номер и соотв. файл по номеру, плюсовать единичку, разлочивать на чтение. Запустить тулзу тестирования нагрузки на сервер и натравить на этот скрипт. Скрипты автоматом будут ждать в очереди чтобы прочитать строку, а когда прочитают - отрабатывать. Но на самом деле я бы сделал может даже через файлик, без залочки, просто с запасом по времени раз в пять минут кидать запрос хоть тем же аяксом.
я бы сделал через вебморду с meta refresh или header refresh. надо только вычислять последний сделаный номер и обарбатывать N следующих файлов.
Погуглил - звучит просто, но будет ли работать на деле? При условии что один цикл у меня выполняется секунд 20. Я вообще собирался через AJAX зацикливать скрипт, но буду пробовать так: Код (PHP): if ($_GET['page'] == 132) { die; } $this->recreate_thumbs('photo', 'thumb', $_GET['page'] ); header('Location: '.$this->root.'thumbs.php?page='.($_GET['page']++));
не сомневайся - оно работает. плюс в простоте и в том, новый запрос возникнет только после того, как отработает предыдущий. ajax чтобы добавить ненужной сложности? ))) в твоем примере номер страницы остается тот же, что был. это странно. зачем он тогда вообще нужен? на самом деле я за то, чтобы обойтись без параметров. скрипт должен сам вычислять следующий id или что там еще. тогда при нештатном перезапуске не будет проблем с URL.
Если это впс то лучше просто из консольки пережать. И вообще валить оттуда надо раз не скачиваются файлы.
Хороший совет я уже дал, сейчас дам очень хороший ))) Не надо вообще "пакетно" генерить превьюшки. Надо настроить генератор на создание по первому требованию. Если URL правильный, но превьюшки нет, реврайт должен обратиться к генератору конкретной картинки. Так постепенно всё нужное само появится, без шоковых нагрузок.
Есть там всё, последняя строчка редиректит на $_GET['page']++ Тут проблема другая - превьюшки есть, они создавались при загрузке фоток, но они все кривые. Предыдущий кодер сделал "уменьшатор", который кукожил превьюшки. Я это дело исправил, и нужно было перенарезать все превьюшки.
Что-то вы перемудрили коллеги... max_execution_time работает в .htaccess Если не помогает, то set_time_limit(ini_get('max_execution_time')) перед каждой итерацией (или где нужно) и будет Вам счастье.