Berichtenrijen beheren
U kunt berichtrijen van de bevellijn beheren gebruikend kroonbanen of een externe procesmanager om ervoor te zorgen dat de consumenten berichten terugwinnen.
Procesbeheer
Cron jobs zijn het standaardmechanisme om consumenten opnieuw op te starten. Processen die door cron
worden gestart, verbruiken het opgegeven aantal berichten en eindigen vervolgens. Als u cron
opnieuw uitvoert, wordt de gebruiker opnieuw gestart.
In het volgende voorbeeld wordt de crontab
-configuratie getoond voor het uitvoeren van consumenten:
/app/code/Magento/MessageQueue/etc/crontab.xml
...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
<schedule>* * * * *</schedule>
</job>
...
cron
planningen definiƫren op basis van uw bedrijfsbehoeften.cron
met Commerce.U kunt een procesmanager zoals Supervisorook gebruiken om het statuut van processen te controleren. De manager kan de bevellijn gebruiken om de processen opnieuw te beginnen zoals nodig.
Configuratie
Gedrag standaard
- Uitsnijdtaak
consumers_runner
is ingeschakeld - Uitsnijdtaak
consumers_runner
voert alle gedefinieerde consumenten uit - Elke consument verwerkt 10000 berichten en eindigt dan
CRON_CONSUMERS_RUNNER
om de consumers_runner
cron-taak te configureren.Specifieke configuratie
Bewerk het bestand /app/etc/env.php
om de uitsnijdtaak te configureren consumers_runner
.
...
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 20000,
'consumers' => [
'consumer1',
'consumer2',
],
'multiple_processes' => [
'consumer1' => 4
]
],
...
-
cron_run
- Een Booleaanse waarde die deconsumers_runner
cron-taak in- of uitschakelt (standaardwaarde =true
). -
max_messages
- Het maximum aantal berichten dat elke consument moet verwerken voordat deze wordt beƫindigd (standaardwaarde =10000
). Hoewel wij het niet adviseren, kunt u 0 gebruiken om de consument te verhinderen te eindigen. Zieconsumers_wait_for_messages
om te vormen hoe de consumenten berichten van de berichtrij verwerken. -
consumers
- Een array van tekenreeksen die aangeven welke consumenten moeten worden uitgevoerd. Een lege serie stelt alle consumenten in werking. -
multiple_processes
- Een array van sleutelwaardeparen die aangeven welke consument moet worden uitgevoerd in hoeveel processen. Ondersteund in Commerce 2.4.4 of hoger.note info INFO Het wordt niet geadviseerd om veelvoudige consumenten op een MySQL-Bediende rij in werking te stellen. Zie het berichtrij van de Verandering van MySQL aan AMQPvoor meer informatie. note info INFO Als uw opslag van Adobe Commerce op het platform van de Wolk wordt ontvangen, gebruik CONSUMERS_WAIT_FOR_MAX_MESSAGES
om te vormen hoe de consumenten berichten van de berichtrij verwerken.
Zie de gebruikers van de het berichtrij van het Begin.