проверка MySQL для длительных опросов - PullRequest
0 голосов
/ 21 декабря 2011

Я пытаюсь провести долгий опрос на своем сайте для уведомления пользователей о входящей почте. Я бы использовал MySQL для базы данных. Будет ли безопасно проверить MySQL, если есть обновление таблицы? Не приведет ли это к замедлению работы сайта, поскольку он будет постоянно искать обновления? Как бы вы проверили, обновлен ли mysql?

код будет выглядеть примерно так

while($currentTime <= $lastTime){
     usleep(10000)
     clearstatcache();
     $sql = mysql_query("SELECT time FROM timestamp WHERE $currentTime = timestamp");
     $row = mysql_fetch_array($sql);
     $currentTime = $row['time'];
}

Таким образом, в принципе, он будет работать до тех пор, пока в базе данных не появится новая отметка времени, но эффективен ли он, когда сервер заставляет сервер просматривать мою базу данных каждые 10 секунд?

Спасибо

Ответы [ 2 ]

0 голосов
/ 22 декабря 2011

Вы можете использовать AJAX и позволить клиентской стороне опрашивать ваш сервер каждую X секунду. Но вы могли бы описать вашу проблему на более детальном уровне ...

Другая возможная вещь - это cron, но вам придется предоставить больше информации.

0 голосов
/ 21 декабря 2011

Я бы настоятельно рекомендовал использовать для этого задания cron или запланированные задачи. http://en.wikipedia.org/wiki/Cron

http://www.developertutorials.com/tutorials/php/running-php-cron-jobs-regular-scheduled-tasks-in-php-172/

Или запланированные задачи, если вы находитесь на окнах.

Подход, который вы предлагаете, прекратит работу, если вы не предотвратите это, и сохранит процесс занятым. Принимая во внимание, что задания cron предназначены для такого типа вещей.

...