@Shillkas11

Apache как реализовать одновременную работу нескольких скриптов?

Привет. Есть скрипт который обрабатывает из бд некоторые данные, и по условию копирует эти данные другим записям в бд. Он запускается через браузер по ссылке site.com/admin/copy_data_from_db, его время выполнения около 24 часов.
Но сейчас при его запуске сервер перестает отвечать на другие запросы пользователей, возвращает ошибку 504 Gateway Time-out.

Нужно сделать так чтобы одновременно работал и этот тяжелый скрипт, и другие запросы пользователей, пусть даже с некоторой задержкой в скорости обработки. Т.е. сделать так чтобы параллельно выполнялись несколько скриптов. Насколько я знаю, Apache имеет возможность выполнения нескольких скриптов одновременно, но почему сейчас при запуске этого скрипта сервер не отвечает на другие запросы?

P.S. Запускать этот скрипт через консоль как я понимаю не получится, т.к. он привязан к symfony, а через консоль можно запускать только одиночные скрипты.
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Смотреть надо, что этот скрипт делает. Возможно, что он блокирует таблицы, а остальные скрипты не могут дождаться их освобождения.
Ответ написан
index0h
@index0h
PHP, Golang. https://youtube.com/index0h
> через консоль можно запускать только одиночные скрипты

Читайте документацию и не выдумывайте глупости.

> Он запускается через браузер по ссылке site.com/admin/copy_data_from_db

Т.е. что бы положить нафиг ваш сайт нужно пройти по ссылке...

> Apache как реализовать одновременную работу нескольких скриптов?

Апач тут со всей силы ни причем. Прочитайте про mysql explain и оптимизируйте запросы.
Если оптимизировать некуда - разбивайте обработку на маленькие части, например по 500 строк за итерацию. Обратите внимание на уровни изоляции.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы