2011-12-21 6 views
0

私は自分のサイトで受信メールをユーザーに通知するために長いポーリングをしようとしています。私はデータベースの目的のためにmysqlを使用しています。テーブルへの更新があれば、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']; 
} 

ようになりますので、基本的に、それはtheresのまで、実行中のデータベースに新しいタイムスタンプを保持しますが、これはその私のデータベースにすべての10秒をサーバーの表情を作る場所に効率的ですか?

おかげ

+0

PHPはサーバサイドを実行します。つまり、このwhileループは、実際に更新が行われるまで何も表示されないようにします。ウェブページをユーザにロードした後で、頻繁にデータベースをポーリングするには、ajaxを使用する必要があります。 – Julien

答えて

0

私は強く、この目的のためにcronジョブまたはスケジュールされたタスクを使用して助言します。 http://en.wikipedia.org/wiki/Cron

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

またはスケジュールされたタスクは、Windows上にある場合。

あなたがそれを防ぐのではなく、プロセスを忙しくしておけば、あなたが提案するアプローチはタイムアウトになります。一方、cronジョブはこの種のものを対象としています。

0

AJAXを使用して、クライアント側でX秒ごとにサーバーをポーリングできるようにすることができます。しかし、あなたはもっと詳細なレベルであなたの問題を説明するかもしれません...

他のことは可能ですが、もっと多くの情報を提供しなければなりません。

関連する問題