Apache как реализовать одновременную работу нескольких скриптов?
Привет. Есть скрипт который обрабатывает из бд некоторые данные, и по условию копирует эти данные другим записям в бд. Он запускается через браузер по ссылке site.com/admin/copy_data_from_db, его время выполнения около 24 часов.
Но сейчас при его запуске сервер перестает отвечать на другие запросы пользователей, возвращает ошибку 504 Gateway Time-out.
Нужно сделать так чтобы одновременно работал и этот тяжелый скрипт, и другие запросы пользователей, пусть даже с некоторой задержкой в скорости обработки. Т.е. сделать так чтобы параллельно выполнялись несколько скриптов. Насколько я знаю, Apache имеет возможность выполнения нескольких скриптов одновременно, но почему сейчас при запуске этого скрипта сервер не отвечает на другие запросы?
P.S. Запускать этот скрипт через консоль как я понимаю не получится, т.к. он привязан к symfony, а через консоль можно запускать только одиночные скрипты.
> через консоль можно запускать только одиночные скрипты
Читайте документацию и не выдумывайте глупости.
> Он запускается через браузер по ссылке site.com/admin/copy_data_from_db
Т.е. что бы положить нафиг ваш сайт нужно пройти по ссылке...
> Apache как реализовать одновременную работу нескольких скриптов?
Апач тут со всей силы ни причем. Прочитайте про mysql explain и оптимизируйте запросы.
Если оптимизировать некуда - разбивайте обработку на маленькие части, например по 500 строк за итерацию. Обратите внимание на уровни изоляции.
> через консоль можно запускать только одиночные скрипты
Я имел в виду то что запустить скрипт через консоль по url site.com/admin/copy_data_from_db не имеет смысла, т.к. это все равно что просто перейти по этому url из браузера.
Собсно и чо? Юзеру стоит обновить страницу пару раз и ваш сайт лежит.
> не имеет смысла, т.к. это все равно что просто перейти по этому url из браузера.
Это очень плохо. В чем проблема завести команду, которая буде запускаться кроном? У симфони есть отличные средства для этого. Ваш же подход - это лютый костыль.