Добрый день, Подскажите пожалуйста. У нас есть локальная база. И глобальная база на удаленном сервере. На локальной базе в таблице клиентов, находится например 1000 клиентов. Нам нужно отправить информацию о каждом клиенте в глобальную базу. Кроном запускается скрипт, делает запрос к локальной базе, получаем нужные нам ID этих 1000 клиентов и информацию по ним, дальше в цикле while ($result = mysql_fetch_array($query)) идём по клиентам и отправляем информацию к глобальной базе по всем 1000 клиентам. С этим всё ок, когда клиентов мало. Но когда их большое кол-во, то скрипт просто не успеет отработать всех 1000 клиентов. Наткнемся на максимальное время работы скрипта. Каким образом можно это правильно реализовать? Нужно использовать многопоточность/многопроцессорность или надо делать какой-то Крон менеджер или еще как-то?
Можно просто увеличить максимальное время работы скрипта. Но я бы сделал так, чтобы информация к глобальной базе отправлялась не в цикле по каждому клиенту, а всего один раз, по всем клиентам сразу, после окончания цикла. А в цикле - просто собирал бы эту информацию в какую-нибудь переменную (для отправки).
Чувак, удали дубль этой темы в другом разделе! На бан нарываешся. Можно сократить количество отсылаемых записей. Наверное не у всех клиентов что-то менялось с прошлой отсылки? Добавь в таблицу Клиенты поле "дата последнего изменения клиента" и сравнивай его с известной датой прошлой массовой отсылки. Можно вместо поля использовать какие-нибудь логи изменений, где будет id клиента и дата операции над ним.
да, изначально так и хотел делать, но глобальная база не принимает всех сразу. Там свой нюанс в принятии, который к сожалению не поменять. есть еще соображения отправлять порциями, но как это реализовать без слишком большого дёрганья базы, пока не пойму