25. februar 2002 - 18:07Der er
12 kommentarer og 1 løsning
Dynamisk tids-check
Jeg har nogle connections, som der skal laves et check på hver 2 minut - det er også ok, men problemet er, at disse connections pludselig kommer og går, dvs hver gang en connecter, skal der oprettes en timer, der foretager et check hver 2 minut på nogle databaser...
Jeg mener jeg skal bruge en ObjectList... Eller hvad?
Jeg bruger UDP-packets, så ideen er, at klienten sender en KeepAlive hvert minut... Fra der er sendt en KeepAlive går der så to minutter, og er der ikke afsendt en ny KeepAlive fra klienten, betragtes den som offline...
Derfor skal jeg have en timer der starter når jeg modtager en KeepAlive og resettes hver gang jeg modtager en ny... Så der skal en timer til hver bruger? Eller hvad? Jeg kan logge deres keepAlive i en database, og så evt. hver 2. minut chekke helle databasen igennem for nogle, hvis KeepAlive er over 2 minutter gammel?
Med mindre du skal ha' en masse timere kørende, skulle du nok over veje at "sync" dit check til hver 2 minut. så er der nogle der bliver checket lidt for hurtigt, men den kan du vel godt leve med, men ville det ikke være federe at køre i en eller anden form for liste ( StringList/ObjectList ) evt. en stringList addObject(socket.RemoteIP,Socket) så kan du bruge IndexOf() på IP-adr. DB brug bliver for sløvt
Okai - hvis vi bruger f.eks. en listBox der indeholder tidsstempler (dato/tid), hvordan kan jeg så chekke om deres timestamp i listBoxen er mere end 2 minutter gamle?
Du skal nogle af de mange rutiner der er i online hjælpen under "date/time routines", SameTime(), CompareDateTime(const A, B: TDateTime): TValueRelationship;
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.