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 von cron
nutzen Sie die angegebene Anzahl von Nachrichten und beenden Sie sie. Wiederholen cron
startet den Verbraucher neu.
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.cron
mit Commerce.Sie können auch einen Prozessmanager wie Supervisor zur Überwachung des Status von Prozessen. 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
Alle definierten Verbraucher ausführen - Jeder Verbraucher verarbeitet 10000 Nachrichten und beendet dann
CRON_CONSUMERS_RUNNER
, um die consumers_runner
Cron-Auftrag.Spezifische Konfiguration
Bearbeiten Sie die /app/etc/env.php
Datei zum Konfigurieren des Cron-Auftrags consumers_runner
.
...
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 20000,
'consumers' => [
'consumer1',
'consumer2',
],
'multiple_processes' => [
'consumer1' => 4
]
],
...
-
cron_run
- Ein boolean -Wert, der dieconsumers_runner
Cron-Auftrag (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 wird ausgeführt all Verbraucher. -
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. Siehe Nachrichtenwarteschlange von MySQL in AMQP ändern für weitere Informationen. note info INFO Wenn Ihr Adobe Commerce-Store auf der Cloud-Plattform gehostet wird, verwenden Sie die CONSUMERS_WAIT_FOR_MAX_MESSAGES
um zu konfigurieren, wie Verbraucher Nachrichten aus der Nachrichtenwarteschlange verarbeiten.
Siehe Starten von Nachrichtenwarteschlangen-Verbrauchern.