Berichtenrijen beheren
U kunt berichtrijen van de bevellijn beheren gebruikend kroonbanen of een externe procesmanager om ervoor te zorgen dat de consumenten berichten terugwinnen. Dit geldt voor alle ondersteunde berichtbrokers, waaronder RabbitMQ (AMQP), Apache ActiveMQ Artemis (STOMP) en MySQL-adapter.
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 Supervisor ook 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_runneris ingeschakeld - Uitsnijdtaak
consumers_runnervoert 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_runnercron-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_messagesom 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 externe makelaars voor meer informatie over het schakelen naar AMQP (RabbitMQ) of STOMP (ActiveMQ Artemis). 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.note note NOTE ActiveMQ Artemis (STOMP) werd geïntroduceerd in Adobe Commerce 2.4.6 en latere versies.
Zie de gebruikers van de het berichtrij van het Begin .