Worker Jobs
Worker-Jobs sind separate Prozesse, die das gleiche Image wie die Anwendung verwenden, aber einen anderen Einstiegspunkt haben. Der Befehl des Worker-Jobs hat Zugriff auf die gleiche Umgebung und dieselben Binärdateien wie die Anwendungs-Runtime. Worker-Jobs können entweder bei der Erstellung der Anwendung oder später bei der Aktualisierung der Anwendung angegeben werden.
Einen Worker-Job definieren
Sie können einen Worker-Job bei Erstellung einer Anwendung definieren. Dazu
können Sie verschiedene Flags im Befehl nctl create app
nutzen, die auf den
Worker-Job verweisen.
--worker-job-command="bundle exec sidekiq" Command to execute to start the worker.
--worker-job-name=sidekiq Name of the worker job to add.
--worker-job-size=micro Size of the worker (defaults to "micro").
$ nctl create app --worker-job-name=sidekiq --worker-job-command="bundle exec sidekiq"
Bei der Erstellung ist es nur möglich, einen einzelnen Worker-Job zu
definieren. Sie können bis zu 3 Worker-Jobs mit dem Befehl nctl update app
hinzufügen.
Der Worker-Job wird zusammen mit dem Hauptprozess der Anwendung ausgeführt. Er wird neu gestartet in den folgenden Fällen:
- Ein neuer Build steht zur Verfügung
- Die Konfiguration der Anwendung wurde verändert (neue Umgebungsvariablen, Veränderung der Grösse, etc.)
Das System stellt sicher, dass nur eine Instanz jedes Worker-Jobs zur gleichen Zeit läuft. Ein fehlgeschlagener Worker-Job hat keinen Einfluss auf den Release des Hauptprozesses und blockiert diesen auch nicht. Wenn ein Worker aus irgendeinem Grund beendet wird, wird er automatisch neu gestartet.
Einen Worker-Job auf anderen Konfigurationsebenen definieren
Da Worker-Jobs bei Deploio-Anwendungen zur Konfiguration gehören, können Sie
sie auch auf anderen Konfigurationsebenen definieren.
Sie können einen Deploy-Job zum Beispiel über die Quelldatei für die
git-Konfiguration .deploio.yaml
festlegen.
workerJobs:
- name: sidekiq
command: "bundle exec sidekiq"
size: mini
Den Status eines Worker-Jobs einsehen
Der einfachste Weg, den Status eines Worker-Jobs mit nctl
anzuzeigen, ist die
Verwendung des -o stats
Befehl.
Zusätzlich können die Logs der Worker-Jobs mit dem Befehl nctl app logs
ausgegeben werden.