Einzelnen Beitrag anzeigen

WorstNightmare

Registriert seit: 6. Okt 2008
159 Beiträge
 
RAD-Studio 2010 Arc
 
#9

Re: ScheduledFuture in Delphi?

  Alt 17. Okt 2009, 19:19
So,

ich bin aus dem Urlaub zurück und habe wieder angefangen mich mit dem Projekt zu beschäftigen.

Es handelt sich um einen Server zu einem MMORPG und der Server muss eben auch die Buffs, die der Spieler gerade aktiviert hat verwalten. Diese deaktivieren sich immer nach einer Zeit, manche nach 4s und manche erst nach 15min. Daher brauche ich eben sowas wie Timer, welche dem Client mitteilen, die entsprechenden Buffs nach der richtigen Zeit abzuschalten, es muss nicht 100% genau sein, es sollten nur nicht mehr als 500ms Abweichung sein.

Ich dachte mir also, ich bastele mir einen Scheduler-Thread, der die ganze Zeit läuft. Dieser würde dann ein Dictionary führen, dessen Key der TickCount in der Zukunft ist und die Value der auszuführende Job (als procedure). In der Execute Schleife wird dann einmal der aktuelle TickCount ermittelt und dann mit allen Keys im Dictionary verglichen und die, welche passen werden ausgeführt.

Folgende Bedenken habe ich:
Zu Bestzeiten könnten im Dictionary 600 Einträge sein, die in jedem Execute verglichen werden, könnte es da irgendwelche Performanceprobleme geben? Sollte ich vielleicht mehrere Scheduler laufen lassen, die jeweils 100 Einträge verwalten oder würde das keinen Sinn machen?
Zusätzlich laufen dann auch noch bis zu 20 Indy-Listener Threads und bis zu 300 Client-Verbindungsthreads, falls das mitbeachtet werden muss.

Was sagt ihr dazu?
  Mit Zitat antworten Zitat