EJB Scheduler

OnDemand

Top Contributor
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

Java:
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");
		}
	    }
 

Anhänge

  • db.jpg
    db.jpg
    26,3 KB · Aufrufe: 36
Zuletzt bearbeitet:

stg

Top Contributor
"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

Top Contributor
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
 
Zuletzt bearbeitet:

stg

Top Contributor
Ich sagte nur, dass du selbst keine Threads starten sollst, lass das den EJB container für dich machen, wenn nötig.
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben