CakePhp または Php を使用して実装する必要があるライブ ブログ プラットフォームに取り組んでいます。一度に 1000 人のユーザーを処理する必要があります。
新しいデータがmysqlテーブルに挿入されたときに、ajaxを使用してコンテンツを自動更新することでこれを行いました。問題は、過去 60 秒間にデータが挿入されたかどうかを確認するために 10 秒ごとに DB にヒットすることです。カウントの結果が 1 の場合、コンテンツを更新するようにプログラムしましたが、最適化されたソリューションとは思えません。
これを実装する方法はありますか?
私のコード - livefeed コントローラーへの ajax 呼び出し:
var auto_refresh = setInterval(
function()
{
$.post('/blog/posts/liveFeed', function(data) {
if(data >0){
alert(data);
$('#content').load(window.location.href);
}
});
return false;
}, 10000);
posts.php のライブフィード コントローラー:
public function liveFeed() {
$res=$this->Post->query('SELECT count(*) AS data FROM posts where TIME_TO_SEC(TIMEDIFF(NOW(), created)) < 60');
echo $res[0][0]['data'];
}
私はcakePhpが苦手です。私のコードが専門外に見える場合は、ご容赦ください。