Eigenschaft "Workers"
Sie können einen Worker definieren, der unabhängig von der Webinstanz ohne laufende Nginx-Instanz ausgeführt werden soll. Der Worker verwendet jedoch denselben Netzwerkspeicher, der von der Commerce -Anwendung verwendet wird. Sie müssen keinen Webserver auf der Worker-Instanz einrichten (unter Verwendung 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 fortlaufend ausgeführte Aufgaben, die das Risiko bergen, eine Bereitstellung zu blockieren.
Konfigurieren eines Sekundärs
Arbeitnehmer können nur mit Pro Staging- und Produktionsumgebungen verwendet werden. Pro-Integration- und Starterumgebungen können die Variable CRON_CONSUMERS_RUNNER verwenden.
Um einen Worker in Pro Staging oder Produktion zu konfigurieren, senden Sie ein Adobe Commerce-Support-Ticket 🔗 und fügen Sie die folgenden Informationen hinzu:
- Projekt-ID
- Umgebungs-ID
- Worker name
- Startbefehle
Sie können einen Prozess pro Worker konfigurieren. Eine einfache, allgemeine Worker-Konfiguration in der Datei .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 Ressourcenzuordnung (Größe S) definiert und der Befehl php ./bin/magento
wird beim Start ausgeführt. Der 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
Der Schlüssel commands.start
ist erforderlich, um Befehle mit der Worker-Anwendung zu starten. Sie können jeden gültigen Shell-Befehl verwenden, obwohl es ideal ist, die Sprache Ihrer Anwendung zu verwenden. Wenn der durch den Schlüssel start
angegebene Befehl beendet wird, wird er automatisch neu gestartet.
deploy
und post_deploy
Hooks und crons
werden nur im Webcontainer ausgeführt, nicht in Worker-Instanzen.Vererbung
Definitionen für die Eigenschaften size
, relationships
, access
, disk
und mount
sowie variables
werden von einem Worker übernommen, sofern dies nicht explizit überschrieben wird.
Die folgenden Eigenschaften werden am häufigsten verwendet, um Einstellungen der obersten Ebene zu überschreiben:
size
- Zuordnung von weniger Ressourcen zu einem einzelnen Hintergrundprozessvariables
- Weisen Sie die Anwendung an, anders zu laufen
Zeit und Warteschlange
Obwohl jeder Worker hinter einem anderen steht, erzeugt die folgende Konfiguration eine konsistente Zwei-Sekunden-Trennung der Zeitstempel in der Datei var/time.txt
, unabhängig vom acht Sekunden langen Schlaf im PHP-Code:
workers:
time1:
commands:
start: 'php -r "sleep(8); echo time() . PHP_EOL;" >> var/time.txt& sleep 2'