2015-04-13 10 views
7

Ich habe einen sehr leichten Job, der sofort ausgeführt werden sollte, wenn es ausgelöst wird, anstatt zu warten, bis die aktuellen Jobs beendet sind.Lauf Jenkins Job sofort

Wie ich verstehe, eine Fliegengewicht Aufgabe ist, was ich will. Es wird einen ephemeren Executor schaffen, nur für diese Aufgabe.

Wie kann ich einen Job als Fliegengewicht ausführen lassen?

+0

firstpoint warum benötigen Sie Fliegengewicht? Gibt es irgendwelche parallele Aufgaben, die Sie in Instanzen durchführen werden .. Sie haben die Möglichkeit, flywieght Aufgaben mit Workflow-Plugin zu machen .. wieder müssen Sie es für Ihre eigenen Bedürfnisse anpassen .. Wenn Sie etwas tiefer erklären, können wir Ihnen mehr helfen .. – DevD

+0

@DevD, das Endziel ist der Titel. Ich möchte einen Jenkins-Job sofort ausführen, ohne auf bestehende Jobs zu warten oder bestehende Jobs zu löschen. Fliegengewicht Aufgaben sind nur eine Idee, die ich hatte, wie dies getan werden könnte. –

+0

dafür können Sie Jobs parallel Jobs in der Konfiguration – DevD

Antwort

0

Probieren Sie diese FlyWeightProject Plugin. Es ist eine Erweiterung des Freestyle-Typs, der im Flyweight-Modus ausgeführt wird.

0

AFAIU Das Problem ist, dass alle Ihre Executoren besetzt sind, wenn es darum geht, diesen Job mit hoher Priorität auszuführen.

Was:

  • einen anderen Slave-Knoten aufbauen; in einer VM zum Beispiel; mit einer entsprechenden Anzahl von Vollstreckern, falls es mehr diese Jobs hohen Priorität
  • ein Label wie hohe Priorität zu diesem neuen Knoten
  • zu drosseln, dass dieser hohe Priorität Auftrag ausgeführt werden kann diese zu zuordnen Hoch Priorität Label
  • ein Label wie lang laufende an alle anderen Knoten
  • zu drosseln, dass alle anderen Aufträge dies ausgeführt werden kann zuweisen lang laufende Label

Eine andere Möglichkeit besteht darin:

  • Konfigurieren der Verwendung des neuen Knoten: Nur bauen Arbeitsplätze mit dem Label Einschränkungen dieser Knoten passend
  • beschränken, in denen die hohe Priorität Auftrag an den neuen Knoten ausgeführt werden kann

    Dadurch vermeiden Sie, wie oben erwähnt, Labels für alle Jobs zu erstellen und zuzuweisen, sind jedoch für zukünftige Anpassungen und Erweiterungen weniger flexibel.

+0

Benötigt dies eine ganz neue Maschine/VM? –

+0

@PaulDraper Ja, tut es. –

2

Ich hatte kürzlich das gleiche Problem. Meine Firma hat viele jenkins-Projekte und einige haben mehr Vorrang vor anderen, und wir begrenzen die Anzahl der Executoren auf nur 4.

Daher entschieden wir uns, einige Sklaven zu erstellen, anstatt immer auf dem Master zu bauen. Erstellen Sie einen Slave-Knoten, der nur Ihren "sehr leichten Job" erstellt.

Gehen Sie zu Manage Jenkin -> Manage nodes -> New node -> Dumb slave.

Dann konfigurieren Sie Ihren Slave-Knoten nach Ihren Wünschen. Konfigurieren Sie nun den "sehr leichten Job". Stellen Sie sicher, dassThis build is parameter überprüft wird, dann Add parameter -> Node.

Wählen Sie dann den Slave-Knoten, den Sie gerade erstellt haben. Es gibt viele Konfigurationen, z. B. welchen Knoten Sie standardmäßig verwenden möchten, aber ich denke, Sie können dies nach Ihren Wünschen anpassen.