Добрый день.
У меня есть оповещение о новых заказа в CRM, запуск по cron, но вместо того, что бы отправить одно письмо скрипт отправляет 2-5 писем с интервалом в минуту (интервал cron). Что заставляет cron Останавливаться на 5м письме?
Проверял файлы notify-$site - последние номера заказов исправно записываются сразу.
$sites = array_keys($sitesinfo);
function tr($msg) {
return iconv('CP1251', 'UTF-8', $msg);
}
foreach ($sites as $site) {
$zakaz = @file_get_contents(dirname(__FILE__)."/notify-$site");
if (empty($zakaz)) {
$sql = "SELECT MAX(zakaz) AS zakaz FROM zakaz";
$res = q($sql);
$row = a($res);
$zakaz=$row['zakaz'];
if (!file_put_contents(dirname(__FILE__)."/notify-$site", $zakaz)) {
echo "Error. Please chmod 0777 script_dir";
exit();
} else {
echo " Initialized. Nofitications from zakaz num ".$zakaz;
}
}
try {
$dateStart = $d_datastart;
$dateEnd = $d_dateend;
$main = new OrdersByApiCheck($dateStart, $dateEnd, $site, $sources_id);
$main->getInfo(); //get info from DB and calltouch
$main->getGaInfo(); //get info from GA
//PROCESSING
$main->ordersNotInCalltouch(); /* разделяем заказы с инфо каллточ и га */
$main->processFeedGenAndNameSrch();
$main->generateXmlFeed();
$done = array();
foreach ($main->orders as $orderDB) {
$order_id = $orderDB['zakaz'];
if (in_array($order_id, $done )){
continue;
}
$done[] = $order_id;
file_put_contents(dirname(__FILE__)."/notify-$site", max($done));
$labels = empty($main->labels[$order_id]) ? '' :str_replace("\n", "<br>\n", $main->labels[$order_id]);
$subject = "Новый заказ оформлен $order_id $site";
$msg = "<html><body>";
if (empty($labels)) {
$msg .= 'Нет меток<br>';
if (!$WITHOUT_LABEL) continue;
} else {
$msg .= $labels."<br>";
}
$msg .= "Телефон 1: <b>".tr($orderDB['phone1'])."</b><br>";
$msg .= "Телефон 2: <b>".tr($orderDB['phone2'])."</b><br><br>";
$msg .= '<table border="1"><tr><td></td><td>кол-во</td><td>сумма</td></tr>';
$total_price = 0;
foreach ($main->orders as $order) {
if ($order["zakaz"] == $order_id) {
$msg .= "<tr><td>";
$msg .= tr($order["model_name"]);
$amount = (int)$order['price'] * (int)$order['quantity'];
$total_price += $amount;
$msg .= '</td><td align="center">'.(int)$order['quantity'].'</td><td align="center">'.$amount."</td>";
$msg .= "</tr>";
}
}
$msg .= '<tr><td><b>Итого:</b></td><td colspan="2" align="center">'.$total_price."</td></tr>";
$msg .= "</table>";
$msg .= "</body></html>";
foreach($MAILS as $mailto) {
send_html_mail('noreply@mail.ru', 'noreply@mail.ru', $mailto, $mailto, 'utf-8', 'utf-8', $subject, $msg);
}
}
unset($main);
$main=NULL;
} catch (Exception $e) {
//echo "ERROR WHILE RINNING. logs." . $e->getMessage();
}
}