У меня есть этот код:
<?php
foreach($items as $item) {
$site = $item['link'];
$id = $item['id'];
$newdata = $item['data_a'];
$newdata2 = $item['data_b'];
$ch = curl_init($site.'updateme.php?id='.$id.'&data1='.$newdata.'&data2='.$newdata2);
curl_exec ($ch);
// do some checking here
curl_close ($ch);
}
?>
Пример ввода:
$site = 'http://www.mysite.com/folder1/folder2/';
$id = 512522;
$newdata = 'Short string here';
$newdata = 'Another short string here with numbers';
Здесь основной процесс updateme.php
if (!$id = intval(Tools::getValue('id')))
$this->_errors[] = Tools::displayError('Invalid ID!');
else
{
$history = new History();
$history->id = $id;
$history->changeState($newdata1, intval($id));
$history->id_employee = intval($employee->id_employee);
$carrier = new Carrier(intval($info->id_carrier), intval($info->id_lang));
$templateVars = array('{delivery}' => ($history->id_data_state == _READY_TO_SEND AND $info->shipping_number) ? str_replace('@', $info->shipping_number, $carrier->url) : '');
if (!$history->addWithemail(true, $templateVars))
$this->_errors[] = Tools::displayError('an error occurred while changing status or was unable to send e-mail to the employee');
}
Сайт всегда будет меняться, и в каждом $ items будет по крайней мере 20 данных, поэтому цикл foreach будет выполняться по крайней мере 20 или более раз в зависимости от количества данных.
Целевой сайт обновит свою базу данных с помощью переданных переменных, вероятно, он передаст по крайней мере 5 функций, прежде чем будет сохранен в БД, так что это может занять некоторое время.
Мой вопрос: будет ли проблема с этим подходом? Будет ли скрипт сталкиваться с ошибкой тайм-аута при прохождении процесса curl? Как насчет того, если данные $ items сейчас около 50 или сотни?
Или есть лучший способ сделать это?
ОБНОВЛЕНИЕ:
* Добавлен код основного процесса updateme.php. Дополнительная информация: updateme.php также отправит электронное письмо в зависимости от переданных переменных.
- Сейчас все остальные сайты размещены на одном сервере.