# Eclipse Job API



## byte (27. Okt 2009)

Hi,

Ich führe eine Operation als Eclipse Job aus. Die Operation speichert Daten auf einem Server. Es werden zunächst die Daten aufbereitet. Dafür setze ich entsprechend im IProgressMonitor den Fortschritt. Am Schluss werden die Daten gespeichert. Dabei kann ich den Fortschritt nicht bestimmen. Diese Operation dauert relativ lange. Ich würde nun gerne, dass der Fortschrittsbalken automatisch immer durchläuft, so dass man sieht, das noch was passiert.

Leider finde ich keine Lösung, wie man einen Job, nachdem man einmal den Progress gesetzt hat, wieder in diesen "unbestimmten" Fortschrittszustand zurück versetzen kann.

Hat jemand einen Tipp, wie man das machen kann?

Grüße byte


----------



## Gast2 (27. Okt 2009)

Warum machst du den Progress nicht vomn Anfang an auf unbestimmt?
Oder machst für die Aufbereitung einen SubProgress und für das Speichern einen SubProgress?


----------



## byte (28. Okt 2009)

Jo, so hab ich es jetzt erstmal wieder gemacht, also alles auf unbestimmt. Aber ich finds komisch, dass man den Progress nachträglich nicht mehr auf unbestimmt setzen kann.

Wie funktioniert das denn mit dem SubProgress?


----------



## Gast2 (28. Okt 2009)

Puh so einen SubTask hab ich auch noch nicht ausgefüht.
Schau mal hier vielleicht ist so eine Family von Jobs was für dich
On the Job: The Eclipse 3.0 Jobs API
oder hier mit monitor uns sub tasks
How to Correctly and Uniformly Use Progress Monitors


----------



## dzim (30. Okt 2009)

Ach eigentlich ist das nicht schwer... Ich hab das mal gemacht, indem ich hald die anderen Jobs innherhalb meines Parent-Jobsaufgerufen hab und an jedem aufgerufenene Sub-Job einen JobChangeListener angehängt habe.
Der hat dann eine globale Variable hin und her gesetzt und ich hab einfach im parent-job so lange gewartet, bis die variable einen bestimmten Zustand hat: while(true) {sleep(x); if (bla) {break;}} ...
Das ist vielleicht nicht die sauberste Methode, aber sie funktioniert seit Monaten einwandfrei.

edit: Aber die o.g. Variante ist sicher etwas sauberer ;-)


----------



## byte (2. Nov 2009)

Also extra einen eigenen Thread aufmachen, der dann auch noch ständig den Scheduler belastet, nur um den Progress zu setzen, soweit wollte ichs dann doch nich treiben.


----------

