Ich denke, das ist ein gelöstes Problem, aber mein Google-Fu war nicht gut genug.Aktualisierungsereignisse übertragen, ohne den Client zu überfluten. Saubere Weise, dies zu tun?
Ich habe eine Tabelle, die den Status mehrerer Dinge verfolgt. Der Server kann Änderungen an Clients nach Belieben übertragen.
Das Problem ist Ich möchte nicht update schieben, wenn das letzte Update weniger als 5 Sekunden ist.
Was ist der sauberste Weg, dies zu erreichen, ohne einen weiteren Event-Manager-Thread zu erstellen?
Mein aktueller Stich sieht wie folgt aus:
pushEvent(){
Look up the last update time
if: last update less than 5 sec ago
then do nothing
else
pushToClients
}
Es ist für die meisten Teil gut genug funktioniert, aber offensichtlich das letzte Update konnte nicht gedrückten gelassen werden.
Was ist ein guter Weg, dies zu tun? Einige Möglichkeiten, habe ich gedacht:
- hinzufügen 5 Sekunden Verzögerung an alle Push (zB Thread.sleep), auf diese Weise kann ich überprüfen, ob ein Update bereits geplant wurde. Nicht ideal, aber niemand würde mich kümmern.
- Tun Sie den Push, dann setzen Sie doNotPush = true. Verwenden Sie einen Timer, um zurück auf false setzen.
Danke,