Ik ben pas weer begonnen met mijn eigen java applicatie en loop nu tegen het volgende probleem op.
Eerst even wat algemene info. Wat de applicatie moet doen is het volgende.
Ik ben bezig met de A.L.I.C.E bot (www.alice.org) dit is een AI persoonlijkheid waar ik wat mee aan het spelen ben. Nu wil ik echter dat deze bot continu gevoed wordt met nieuwe informatie.
Dit gedeelte doe ik dus met de java applicatie. Op dit moment zoekt ie een stuk of 30 sites af naar informatie en dumpt die in een database (dit doet ie om een bepaalde tijd, de ene site 900 sec. een andere weer 450 sec.) Van al de opgehaalde informatie wordt om het kwartier een aiml (xml formaat gebruikt door A.L.I.C.E) file gemaakt die dan rechtstreeks door de bot gebruikt kan worden als informatiebron.
Tot zover allemaal geen problemen en dit werkt ook allemaal. Alle verschillende tijdsintervallen voor het ophalen van info wordt gemanaged mbv timers.
En deze timers zijn het probleem. Ik ging ervan uit (niet de API doorgelezen) dat zodra je een timerobject maakt er niet gelijk een thread voor opgestart zou worden. Dit is wel het geval. Op dit moment is het nog niet zo'n probleem om 30 java threads tegelijk te hebben lopen. Alleen ik ben dit aan het uitbreiden en ik wil dit terugbrengen tot maximaal 10.
Ik wil hiervoor een threadpool gebruiken en de implementatie daarvan is niet het probleem. Het probleem is dat ik geen idee heb hoe ik ervoor kan zorgen dat ik die verschillende threads kan laten starten op een bepaald moment zonder timers te gebruiken. Of op een andere manier zodat niet elke timer een aparte thread nodig heeft.
Even kort samengevat ik heb dit.
Object1 interval 900 sec.
Object2 interval 800 sec.
Object3 interval 650 sec.
..
Objectn interval n sec.
Als ik dit via timers doe krijg ik ook n timerthreads. Is hier een oplossing voor of heeft iemand mischien een idee hoe ik dit anders aan kan pakken.
Eerst even wat algemene info. Wat de applicatie moet doen is het volgende.
Ik ben bezig met de A.L.I.C.E bot (www.alice.org) dit is een AI persoonlijkheid waar ik wat mee aan het spelen ben. Nu wil ik echter dat deze bot continu gevoed wordt met nieuwe informatie.
Dit gedeelte doe ik dus met de java applicatie. Op dit moment zoekt ie een stuk of 30 sites af naar informatie en dumpt die in een database (dit doet ie om een bepaalde tijd, de ene site 900 sec. een andere weer 450 sec.) Van al de opgehaalde informatie wordt om het kwartier een aiml (xml formaat gebruikt door A.L.I.C.E) file gemaakt die dan rechtstreeks door de bot gebruikt kan worden als informatiebron.
Tot zover allemaal geen problemen en dit werkt ook allemaal. Alle verschillende tijdsintervallen voor het ophalen van info wordt gemanaged mbv timers.
En deze timers zijn het probleem. Ik ging ervan uit (niet de API doorgelezen) dat zodra je een timerobject maakt er niet gelijk een thread voor opgestart zou worden. Dit is wel het geval. Op dit moment is het nog niet zo'n probleem om 30 java threads tegelijk te hebben lopen. Alleen ik ben dit aan het uitbreiden en ik wil dit terugbrengen tot maximaal 10.
Ik wil hiervoor een threadpool gebruiken en de implementatie daarvan is niet het probleem. Het probleem is dat ik geen idee heb hoe ik ervoor kan zorgen dat ik die verschillende threads kan laten starten op een bepaald moment zonder timers te gebruiken. Of op een andere manier zodat niet elke timer een aparte thread nodig heeft.
Even kort samengevat ik heb dit.
Object1 interval 900 sec.
Object2 interval 800 sec.
Object3 interval 650 sec.
..
Objectn interval n sec.
Als ik dit via timers doe krijg ik ook n timerthreads. Is hier een oplossing voor of heeft iemand mischien een idee hoe ik dit anders aan kan pakken.