Ik ben op zoek naar een goede oplossing om processen gescheduled en eventueel parallel te laten lopen. Probleem is alleen dat mn requirements net iets hoger liggen dan bij simpel thread programming, vandaar dat ik na 2 uur zoeken nog geen steek opgeschoten ben, terwijl ik ervan overtuigd ben dat er wel iets te vinden moet zijn waar dit mee te bouwen is.
Ruwweg heb ik de volgende requirements:
1. Een process bestaat uit 3 delen:
* init() - hier open ik bijv. een socket
* runTask() - hier voer ik een een task een aantal maal uit
* terminate() - hier close ik bijv. het socket weer
2. De task in runTask moet meerdere malen kunnen worden uitgevoerd tussen init en terminate. Dit moet op twee manieren kunnen:
(a) met een pauze ertussen,
(b) fixed delay. Hiermee bedoel ik dus dat als een task 10 seconden duurt, en het delay is 2s, dan heb je na 7 seconden 3 tasks parralel runnen.
3. Het zou heel erg mooi zijn als het process bruut afgebroken zou kunnen worden. Hiermee bedoel ik dus dat ook de task als die op dat moment bezig is, direct moet stoppen. Volgens mij kan dit niet zomaar en hangt het af van de implementatie in de task, dit zou dan regelmatig een boolean aborted moeten checken. Maarja, das lastig als de methode blocked luistert op een socket.
Mijn vraag is: is er ergens een oplossing waarmee dit te realiseren is? Ik heb gegeken naar java.util.concurrent, en het Quartz project, maar voor zover ik kan zien gaat het me niet lukken requirement (1) te realiseren met deze oplossingen.
Ruwweg heb ik de volgende requirements:
1. Een process bestaat uit 3 delen:
* init() - hier open ik bijv. een socket
* runTask() - hier voer ik een een task een aantal maal uit
* terminate() - hier close ik bijv. het socket weer
2. De task in runTask moet meerdere malen kunnen worden uitgevoerd tussen init en terminate. Dit moet op twee manieren kunnen:
(a) met een pauze ertussen,
(b) fixed delay. Hiermee bedoel ik dus dat als een task 10 seconden duurt, en het delay is 2s, dan heb je na 7 seconden 3 tasks parralel runnen.
3. Het zou heel erg mooi zijn als het process bruut afgebroken zou kunnen worden. Hiermee bedoel ik dus dat ook de task als die op dat moment bezig is, direct moet stoppen. Volgens mij kan dit niet zomaar en hangt het af van de implementatie in de task, dit zou dan regelmatig een boolean aborted moeten checken. Maarja, das lastig als de methode blocked luistert op een socket.
Mijn vraag is: is er ergens een oplossing waarmee dit te realiseren is? Ik heb gegeken naar java.util.concurrent, en het Quartz project, maar voor zover ik kan zien gaat het me niet lukken requirement (1) te realiseren met deze oplossingen.