Workers-Eigenschaft
Sie können einen Worker definieren, der unabhängig von der Web-Instanz ausgeführt werden soll, ohne dass eine Nginx-Instanz ausgeführt wird. Der Worker verwendet jedoch denselben Netzwerkspeicher, der von der Commerce-Anwendung verwendet wird. Es ist nicht erforderlich, einen Webserver auf der Worker-Instanz einzurichten (mithilfe von Node.js oder Go), da der Router keine öffentlichen Anfragen an den Worker richten kann. Dadurch ist die Worker-Instanz ideal für Hintergrundaufgaben oder ständig ausgeführte Aufgaben, die eine Bereitstellung möglicherweise blockieren.
Konfigurieren eines Sekundärs
Worker können nur mit Pro-Staging- und Produktionsumgebungen verwendet werden. Pro-Integrations- und Starter-Umgebungen können die Variable CRON_CONSUMERS_RUNNER verwenden.
Um einen Worker in Pro-Staging oder Produktion zu konfigurieren, Sie ein Adobe Commerce-Support-Ticketund geben Sie die folgenden Informationen ein:
- Projekt-ID
- Umgebungs-ID
- Worker-Name
- Startbefehle
Sie können einen Prozess pro Worker konfigurieren. Eine einfache, allgemeine Worker-Konfiguration in der .magento.app.yaml
könnte wie folgt aussehen:
workers:
queue:
commands:
start: |
php ./bin/magento queue:consumers:start commerce.eventing.event.publish
In diesem Beispiel wird ein einzelner Worker mit dem Namen queue
mit einer kleinen Ressourcenzuordnungsebene (Größe S) definiert und der Befehl php ./bin/magento
beim Start ausgeführt. Die Worker-queue
wird dann auf jedem Knoten als Worker-Prozess ausgeführt. Wenn der Befehl beendet wird, wird er automatisch neu gestartet.
Befehle und Überschreibungen
Die commands.start
ist erforderlich, um Befehle mit dem Worker-Programm zu starten. Sie können jeden gültigen Shell-Befehl verwenden, obwohl es ideal ist, die Sprache Ihrer Anwendung zu verwenden. Wenn der durch die start
angegebene Befehl beendet wird, wird er automatisch neu gestartet.
deploy
- und post_deploy
-Hooks und crons
werden nur im Web-Container ausgeführt, nicht in Worker-Instanzen.Vererbung
Definitionen für die Eigenschaften size
, relationships
, access
, disk
und mount
sowie variables
werden von einem Worker geerbt, es sei denn, sie werden explizit überschrieben.
Die folgenden Eigenschaften werden am häufigsten verwendet, um Einstellungen oberster Ebene zu:
size
: Weniger Ressourcen für einen einzelnen Hintergrundprozess zuweisenvariables
- Weist die Anwendung an, anders auszuführen
Timing und Warteschlangen
Obwohl jeder Worker hintereinander in die Warteschlange gestellt wird, erzeugt die folgende Konfiguration eine konsistente Zwei-Sekunden-Trennung der Zeitstempel in der var/time.txt
-Datei, unabhängig vom Acht-Sekunden-Ruhezustand im PHP-Code:
workers:
time1:
commands:
start: 'php -r "sleep(8); echo time() . PHP_EOL;" >> var/time.txt& sleep 2'