2012-04-03 2 views
0

Stellen Sie sich das folgende Szenario vor.Quarz Scheduler Jobmigration

Server 1: Quartz 1.x läuft in JDK 1.4 Code

Server 2: Quartz 2.x in JDK 1.6 ausgeführt Code

Verschiedene Reihe von Jobtabelle für jeden Server (aber in das gleiche Schema). Der Instanzname und die Instanz-ID sind für jeden Server eindeutig.

Jetzt möchte ich Jobs von Server 1 zu Server 2 migrieren. Dazu darf ich Code schreiben, der entweder auf Server 1 oder auf Server 2 ausgeführt wird. Der Code muss eine Kopie von vorhanden erstellen Server 1-Jobs in Server 2-Jobtabellen. Nach dem Erstellen müssen bestehende Jobs auf Server 1 gelöscht werden.

Kann dies getan werden?

Antwort

1

Schauen Sie sich die Quartz 1.8.x to Quartz 2.0 Migration Guide, vor allem die Durchführen von Änderungen für Setups Mit JDBCJobStore:

Wenn Sie JDBCJobStore verwenden, müssen Sie einige Änderungen in der Datenbank zu transformieren sie in das neue erwartete Schema machen.

Das Migrationsskript wird bereitgestellt und es ist ziemlich lang. Grundsätzlich müssen Sie das alte Datenbanktabellenschema in Quartz 2.0 konvertieren.

+0

Tomasz - Ich habe das Dokument schon einmal gelesen. Ich denke du hast meine Frage falsch beantwortet. Ich versuche nicht, einen neuen Job zu erstellen oder neue Tabellen zu erstellen. Ich habe bereits neue Tabellen erstellt und bin mit meiner Codeänderung fertig. Jetzt versuche ich die Migrationsjobs (die bereits dort sind) von einem Satz Jobtabelle zu einem anderen Satz Jobtabelle (d. H. Von einem Server zu einem anderen). Kann das gemacht werden? –

+0

@AndrewAnderson: Wenn ich richtig verstehe, möchten Sie, dass Jobs von Server 1 auf Server 2 ausgeführt werden. Wenn Sie das Datenbankschema auf Server 1 migriert haben, reicht es aus, alle Datensätze von Server 1 auf Server 2 zu kopieren Der Scheduler-Name muss derselbe sein, damit der Scheduler auf Server 2 nach dem Neustart neue Aufgaben aufnimmt. –

+0

Tomsaz - Ich kann keine Jobs auf einmal verschieben. Ich muss Server 1 für einige Zeit aufrecht erhalten. Art der schrittweisen Migration. Außerdem haben wir unterschiedliche Scheduler-Namen. Meine Sorge ist, wenn ich versuche, einen Job auf Server 2 zu migrieren und den gleichen Job von Server 1 zu löschen (beide Aktionen müssen von Server 1 durchgeführt werden), dann brauche ich nicht 2 Sätze von quartz.properties seit diesen Server haben eindeutige Instanznamen, die mit der Datei quartz.properties konfiguriert werden. Ist diese Übung möglich? –