Фоновый PHP рабочий - PullRequest
       5

Фоновый PHP рабочий

0 голосов
/ 21 ноября 2011

У меня есть сценарий, который требует времени для обработки, он должен брать данные из БД и передавать данные на другие серверы.

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

Мне было интересно, в любом случае, сделать это так, чтобы он не выполнял процесс перед клиентом?

Мне не нужен cron, так как он должен быть отправлен одновременно, но просто не загружается с клиентом.

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Пара опций:

  1. Exec PHP-скрипт, который работает с БД на вашей веб-странице, но не ожидает вывода exec.Будьте осторожны с этим ОЧЕНЬ , не принимайте всевозможные входные параметры от пользователя без их очистки.Я упоминаю это только в качестве опции, я бы никогда не сделал это сам.

  2. Пусть ваш скрипт обновления БД все время работает в фоновом режиме, опрашивая что-то, что вызывает его обновление.Скажем, например, что это может быть проверка на наличие /tmp/run.txt и запуск обновления БД, если он существует.Затем вы можете создать run.txt со своей веб-страницы и вернуться, не дожидаясь ответа.

  3. Создайте сценарий обновления вашей БД в качестве демона.

0 голосов
/ 21 ноября 2011

Вот несколько вещей, на которые вы можете взглянуть:

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

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

Затем вы можете проверить свой php-кода также посмотреть, есть ли что-нибудь, даже малейшее, которое могло бы помочь в быстром выполнении необходимых задач.

Где расположены исходные и целевые серверы баз данных (с точки зрения сети и географически, если вы знаете,) и как быстро исходный и целевой серверы могут обмениваться данными через сеть / сеть?

...