Verwalten von Nachrichtenwarteschlangen
- Themen:
- Konfiguration
Erstellt für:
- Experte
- Admin
- Entwickler
Sie können Nachrichtenwarteschlangen über die Befehlszeile mithilfe von Cron-Aufträgen oder einem externen Prozessmanager verwalten, um sicherzustellen, dass Verbraucher Nachrichten abrufen.
Prozessverwaltung
Cron-Aufträge sind der Standardmechanismus zum Neustart von Verbrauchern. Von cron
gestartete Prozesse verarbeiten die angegebene Anzahl an Nachrichten und beenden diese. Beim erneuten Ausführen von cron
wird der Verbraucher neu gestartet.
Das folgende Beispiel zeigt die crontab
für das Ausführen von Verbrauchern:
/app/code/Magento/MessageQueue/etc/crontab.xml
...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
<schedule>* * * * *</schedule>
</job>
...
cron
entsprechend Ihren Geschäftsanforderungen definieren.cron
mit Commerce findenunter „Konfigurieren und Ausführen von“.Sie können auch einen Prozess-Manager wie Supervisor verwenden, um den Status von Prozessen zu überwachen. Der Manager kann die Befehlszeile verwenden, um die Prozesse nach Bedarf neu zu starten.
Konfiguration
Standardverhalten
- Cron-
consumers_runner
ist aktiviert - Cron-
consumers_runner
führt alle definierten Verbraucher aus - Jeder Verbraucher verarbeitet 10000 Nachrichten und beendet dann
CRON_CONSUMERS_RUNNER
den consumers_runner
Cron-Auftrag.Spezifische Konfiguration
Bearbeiten Sie die /app/etc/env.php
Datei, um die Cron-Job-consumers_runner
zu konfigurieren.
...
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 20000,
'consumers' => [
'consumer1',
'consumer2',
],
'multiple_processes' => [
'consumer1' => 4
]
],
...
-
cron_run
- Ein boolescher Wert, der denconsumers_runner
Cron-Auftrag aktiviert oder deaktiviert (Standard =true
). -
max_messages
- Die maximale Anzahl von Nachrichten, die jeder Verbraucher vor dem Beenden verarbeiten muss (Standard =10000
). Obwohl wir dies nicht empfehlen, können Sie 0 verwenden, um zu verhindern, dass der Verbraucher beendet. Sieheconsumers_wait_for_messages
, um zu konfigurieren, wie Verbraucher Nachrichten aus der Nachrichtenwarteschlange verarbeiten. -
consumers
- Ein Array von Zeichenfolgen, das angibt, welche Verbraucher ausgeführt werden sollen. Ein leeres Array führt "". -
multiple_processes
: Ein Array von Schlüssel-Wert-Paaren, die angeben, welcher Consumer in wie vielen Prozessen ausgeführt werden soll. Wird in Commerce 2.4.4 oder höher unterstützt.INFO
Es wird nicht empfohlen, mehrere Verbraucher in einer von MySQL betriebenen Warteschlange auszuführen. Weitere finden Sie unter „Meldungswarteschlange von MySQL aufändern“.INFO
Wenn Ihr Adobe Commerce-Store auf der Cloud-Plattform gehostet wird, konfigurieren Sie mit demCONSUMERS_WAIT_FOR_MAX_MESSAGES
, wie Verbraucher Nachrichten aus der Nachrichtenwarteschlange verarbeiten.