Verwalten von Nachrichtenwarteschlangen
Sie können Nachrichtenwarteschlangen über die Befehlszeile mit Cron-Aufträgen oder einem externen Prozess-Manager verwalten, um sicherzustellen, dass Verbraucher Nachrichten abrufen.
Prozessverwaltung
Cron-Aufträge sind der Standardmechanismus zum Neustart von Verbrauchern. Prozesse, die mit cron
gestartet wurden, verbrauchen die angegebene Anzahl von Nachrichten und enden dann. Beim erneuten Ausführen von cron
wird der Verbraucher neu gestartet.
Das folgende Beispiel zeigt die crontab
-Konfiguration für laufende Verbraucher:
/app/code/Magento/MessageQueue/etc/crontab.xml
...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
<schedule>* * * * *</schedule>
</job>
...
cron
-Zeitpläne entsprechend Ihren Geschäftsanforderungen definieren.cron
mit Commerce finden Sie unter CRON konfigurieren und ausführen .Sie können auch einen Prozessmanager 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-Auftrag
consumers_runner
ist aktiviert - Cron-Auftrag
consumers_runner
führt alle definierten Verbraucher aus - Jeder Verbraucher verarbeitet 10000 Nachrichten und beendet dann
CRON_CONSUMERS_RUNNER
, um den consumers_runner
-Cron-Auftrag zu konfigurieren.Spezifische Konfiguration
Bearbeiten Sie die Datei /app/etc/env.php
, um den Cron-Auftrag 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 es nicht empfehlen, können Sie 0 verwenden, um zu verhindern, dass der Verbraucher beendet wird. Sieheconsumers_wait_for_messages
, um zu konfigurieren, wie Verbraucher Nachrichten aus der Nachrichtenwarteschlange verarbeiten. -
consumers
- Ein Array von Zeichenfolgen, die angeben, welche Verbraucher ausgeführt werden sollen. Ein leeres Array führt alle -Verbraucher aus. -
multiple_processes
- Ein Array von Schlüssel-Wert-Paaren, die angeben, welcher Verbraucher in wie vielen Prozessen ausgeführt werden soll. Unterstützt in Commerce 2.4.4 oder höher.note info INFO Es wird nicht empfohlen, mehrere Benutzer in einer MySQL-Warteschlange auszuführen. Weitere Informationen finden Sie unter Nachrichtenwarteschlange von MySQL in AMQP ändern . note info INFO Wenn Ihr Adobe Commerce-Store auf der Cloud-Plattform gehostet wird, verwenden Sie den CONSUMERS_WAIT_FOR_MAX_MESSAGES
, um zu konfigurieren, wie Verbraucher Nachrichten aus der Nachrichtenwarteschlange verarbeiten.
Siehe Starten von Verbrauchern in der Nachrichtenwarteschlange.