Zum Hauptinhalt springen

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.

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.