Hantera meddelandeköer
Du kan hantera meddelandeköer från kommandoraden med hjälp av cron-jobb eller en extern processhanterare för att se till att konsumenterna hämtar meddelanden. Detta gäller alla meddelandeförmedlare som stöds, inklusive RabbitMQ (AMQP), Apache ActiveMQ Artemis (STOMP) och MySQL-adapter.
Processhantering
Kronjobb är standardmekanismen för att återstarta konsumenter. Processer som har startats av cron förbrukar det angivna antalet meddelanden och avslutar sedan. Om cron startas om startas konsumenten om.
I följande exempel visas crontab-konfigurationen för konsumenter som kör:
/app/code/Magento/MessageQueue/etc/crontab.xml
...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
<schedule>* * * * *</schedule>
</job>
...
cron-scheman efter dina affärsbehov.cron.Du kan också använda en processhanterare som Supervisor för att övervaka processernas status. Hanteraren kan använda kommandoraden för att starta om processerna efter behov.
Konfiguration
Som standard
- Kronijobbet
consumers_runnerär aktiverat - Kronijobbet
consumers_runnerkör alla definierade konsumenter - Varje konsument bearbetar 10000 meddelanden och avslutas sedan
CRON_CONSUMERS_RUNNER för att konfigurera consumers_runner cron-jobbet.Specifik konfiguration
Redigera filen /app/etc/env.php om du vill konfigurera cron-jobbet consumers_runner.
...
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 20000,
'consumers' => [
'consumer1',
'consumer2',
],
'multiple_processes' => [
'consumer1' => 4
]
],
...
-
cron_run- Ett booleskt värde som aktiverar eller inaktiverarconsumers_runnercron-jobbet (standard =true). -
max_messages- Det maximala antalet meddelanden som varje konsument måste bearbeta innan de avbryts (standard =10000). Även om vi inte rekommenderar det kan du använda 0 för att hindra konsumenten från att säga upp sig. Seconsumers_wait_for_messagesom du vill konfigurera hur konsumenter bearbetar meddelanden från meddelandekön. -
consumers- en matris med strängar som anger vilka konsumenter som ska köras. En tom array kör alla konsumenter. -
multiple_processes- en matris med nyckelvärdepar som anger vilken konsument som ska köras i hur många processer. Stöds i Commerce 2.4.4 eller senare.note info INFO Du bör inte köra flera användare på en MySQL-styrd kö. Mer information om hur du byter till AMQP (RabbitMQ) eller STOMP (ActiveMQ Artemis) finns i Ändra meddelandekö från MySQL till externa mäklare. note info INFO Om din Adobe Commerce-butik finns på molnplattformen använder du CONSUMERS_WAIT_FOR_MAX_MESSAGESför att konfigurera hur konsumenter ska bearbeta meddelanden från meddelandekön.note note NOTE ActiveMQ Artemis (STOMP) introducerades i Adobe Commerce 2.4.6 och senare.
Se Starta meddelandekökonsumenter.