これは解決された問題だと思うが、私のgoogle-fuは十分ではなかった。クライアントをフラッディングせずに更新イベントをプッシュします。これを行うにはクリーンな方法?
私は、複数のもののステータスを追跡するテーブルを持っています。サーバーは自由に変更をクライアントにプッシュできます。
問題はです。最後の更新が5秒未満であれば、更新をプッシュしたくありません。
他のイベントマネージャスレッドを作成せずにこれを達成する最もクリーンな方法は何ですか?
私の現在の刺し傷は、次のようになります。
pushEvent(){
Look up the last update time
if: last update less than 5 sec ago
then do nothing
else
pushToClients
}
それはほとんどの部分には十分に機能しますが、明らかに最後の更新をunpushedままにすることができます。
これを行う良い方法は何ですか?私が考えてい いくつかの方法:アップデートがすでにスケジュールされている場合
- は、すべてのプッシュ(例えばのThread.sleep)に私は 確認することができ、そのように5秒の遅延を追加します。理想的ではありませんが、誰もが 気になりません。
- プッシュを行い、次にdoNotPush = trueに設定します。タイマーを使用して をfalseに戻します。
おかげで、