Здравствуйте, MozgC, Вы писали:
MC>Здравствуйте,
MC>На сайте есть очень большая БД по ценам на продаваемый компанией товар (порядка нескольких миллионов позиций). Прайс в БД постоянно обновляется. Клиенты могут смотреть цены на интересующий их товар. Но клиентам хочется иметь возможность скачать часть прайса (какую-либо категорию) одним файлом, т.е. например скачать прайс на все виды втулок (100000 позиций к примеру). Такой прайс надо будет генерировать на лету из БД (у каждого клиента свои скидки и прайс в БД обновляется постоянно). Но ограничение на время выполнения скрипта (обычно на хостингах — 30 секунд) не позволяет успеть сгенерировать прайс (а если бы не было ограничения по времени, то возможно бы сработало ограничение на выделяемую скрипту память?) в формате Excel.
MC>Как можно все-таки решить данную задачу? Т.е. дать клиентам возможность скачивать актуальные прайс-листы с уже установленными для клиента ценами.
MC>Заранее спасибо.
Это стандартная задача на отложенное выполнение. Вариантов решений много. Общее место — очередь заданий. Обработка очереди:
— постоянно висящий в памяти демон (возможно многопоточный, если очередь большая)
— скрипт, запускающийся по крону
Возвращать файл пользователю можно любым асинхронным методом:
— аяксовый запрос на постановку файла в очередь, время от времени аяксовая проверка очереди
— любой запрос на постановку в очередь, отправка ссылки на скачивание готового файла пользователю на почту (или отправка готового файла)