Я php noob и нуждаюсь в некоторой помощи. Я создал службу push для отправки push-сообщений на iphone. В комментариях говорится, что более эффективно объединять несколько сообщений в один пакет. Кроме того, прямо сейчас я делаю звонок для удаления каждого сообщения. Как объединить несколько сообщений в один пакет?Сделать этот алгоритм более эффективным
Благодаря
function start()
{
writeToLog('Connecting to ' . $this->server);
if (!$this->connectToAPNS())
exit;
while (true)
{
// Do at most 20 messages at a time. Note: we send each message in
// a separate packet to APNS. It would be more efficient if we
// combined several messages into one packet, but this script isn't
// smart enough to do that. ;-)
$stmt = $this->pdo->prepare('SELECT * FROM push_queue WHERE time_sent IS NULL LIMIT 20');
$stmt->execute();
$messages = $stmt->fetchAll(PDO::FETCH_OBJ);
foreach ($messages as $message)
{
if ($this->sendNotification($message->message_id, $message->device_token, $message->payload))
{
//$stmt = $this->pdo->prepare('UPDATE push_queue SET time_sent = NOW() WHERE message_id = ?');
//$stmt->execute(array($message->message_id));
$stmt = $this->pdo->prepare('DELETE FROM push_queue WHERE message_id = ?');
$stmt->execute(array($message->message_id));
}
else // failed to deliver
{
$this->reconnectToAPNS();
}
}
unset($messages);
sleep(5);
}
}
Ваш вопрос не имеет никакого отношения к оптимизация SQL - это то, что делается с результатом SQL ... вам нужно объяснить, что часть с гораздо более подробной информацией, чтобы получить полезные ответы! – Yahia