Запустить скрипт php несколько раз - PullRequest
3 голосов
/ 22 марта 2012

Я ищу способ запуска php-скрипта несколько раз из браузера.Вот сценарий:

Я создаю таблицу mySQL из серии больших файлов в диапазоне от 100 мегабайт до 2 гигов.В среднем в таблице будет около 150 000 записей.

Я делаю это прямо сейчас, имея функцию javascript, которая выполняет AJAX-вызов скрипта PHP.В случае успеха функция устанавливает время ожидания для запуска и запускает вызов AJAX для запуска второй сотни.

Я задумался над тем, чтобы дать функции секунду для закрытия, прежде чем она снова запустится.

Это не так хорошо работает.Сама функция работает, но с точки зрения производительности она довольно медленная.

Когда я не делал 100 записей за раз и не использовал javascript, а только PHP, я мог получить около 15 000 записей в таблицу до истечения времени ожидания.Прямо сейчас это занимает около 10 минут, чтобы сделать то же количество записей.

Я знаю, что непрерывно работающий javascript истощает память и производительность, как сумасшедший, и ему просто интересно, есть ли у кого-нибудь идеи о том, как выполнить PHP-скрипт снова и снова из браузера.Кроны не вариант на данный момент.

Ответы [ 4 ]

1 голос
/ 22 марта 2012

Его называют (асинхронные) очереди работы / работы, кажется, вам нужно изучить Gearman

0 голосов
/ 22 марта 2012

Я столкнулся с подобной ситуацией ... мое решение состояло в том, чтобы использовать очередь ajax.По сути, вы отправляете серию вызовов ajax в очередь, которая запускает их последовательно, начиная следующий после того, как предыдущий вернулся с сервера как успешный.

Установка времени ожидания может привести к ситуации, когда следующий вызов ajax будет выполнен до того, как сервер завершит последний.Это вероятная причина вашей проблемы с производительностью.Мне не очень нравятся тайм-ауты javascript только из-за чрезмерного использования ресурсов.

Google "Ajax Queue" для кода, который вы считаете полезным, или я могу опубликовать мой, который является jQuery.

0 голосов
/ 22 марта 2012

Не могли бы вы просто заставить скрипт PHP повторять функцию несколько раз? Если проблема в том, что функция иногда дает сбой или время ожидания истекло, не могли бы вы перехватить исключение в вашем скрипте? Или у вас есть неизбежная и абсолютно фатальная ошибка, которая действительно требует использования внешнего моториста?

0 голосов
/ 22 марта 2012

настроить cronjob для запуска вашего скрипта каждую минуту

...