# EJB Scheduler



## OnDemand (4. Mai 2015)

Moin!

Hab ein Problem mit nem Scheduler... ich rufe jede 3 Minuten eine Methode auf, die mir eine Datei erstellt.
Dabei ist mir aufgefallen, dass es nicht beendet wird, sobald mein resultSet kein next() mehr gibt, sondern es wird immer wieder in die  while-Schleife gegangen, bis 1 Minute um ist.

Was ist denn da losi?

Die Deklaration ist aber korrekt oder?
    @Schedule(second = "*", minute = "*/3", hour = "*", persistent = false)

Hier meine While, es soll von jedem User die in der DB hinterlegte Datei herunterladen


```
while (resultUser.next()) {
		for (int i = 2; i < resultUser.getMetaData().getColumnCount()+1; i++) {
		 new Thread(new Downloader()).start(); //hier wird in der Run Methode heruntergeladen.
		    System.out.println("ende while");
		}
	    }
```


----------



## stg (4. Mai 2015)

"Es wird immer wieder in die while-Schleife gegangen"
klar, dein scheduler feuert auch jede Sekunde...
Außerdem: selbst Threads starten ist hier keine gute Idee, wenn man nicht ganz genau weiß, was man tut.


----------



## OnDemand (4. Mai 2015)

moin, danke! dann hab ich das mit dem scheduler missverstanden.


----------



## OnDemand (4. Mai 2015)

Hast du eine andere Lösung alle Dateien herunter zu laden? Mit Threads wäre schon toll alles gleichzeitig zu machen.

Edit: ich bin blöd... Ich kann doch einfach bei jedem while-Durchlauf ein neues Downloader-Objekt instanziieren und fertig ist die Laube


----------



## stg (4. Mai 2015)

Ich sagte nur, dass du _selbst_ keine Threads starten sollst, lass das den EJB container für dich machen, wenn nötig.


----------



## OnDemand (4. Mai 2015)

Ach das geht auch automatisch? Also langsam mag ich JavaEE  Kannst du mir nen Tipp nennen wonach ich suchen muss?


----------



## stg (4. Mai 2015)

siehe z.B. hier:
https://satishgopal.wordpress.com/2011/04/24/ejb-3-1-asynchronous-methods/


----------

