管理訊息佇列
您可以使用cron作業或外部程式管理員從命令列管理訊息佇列,以確保消費者正在擷取訊息。
程式管理
Cron作業是重新啟動消費者的預設機制。 由cron
啟動的處理序會使用指定數目的訊息,然後終止。 重新執行cron
會重新啟動消費者。
下列範例顯示用於執行消費者的crontab
設定:
/app/code/Magento/MessageQueue/etc/crontab.xml
...
<job name="consumers_runner" instance="Magento\MessageQueue\Model\Cron\ConsumersRunner" method="run">
<schedule>* * * * *</schedule>
</job>
...
INFO
您檢查訊息佇列的頻率取決於您的商業邏輯和可用的系統資源。 一般而言,您會想要檢查新客戶,並比更新目錄等資源較密集的程式更頻繁地傳送歡迎電子郵件。 您應根據業務需求定義
cron
個排程。您可以在管理員商店>設定>設定>進階>系統> Cron設定選項中設定群組:消費者。
如需搭配Commerce使用
cron
的詳細資訊,請參閱設定並執行cron。您也可以使用程式管理員(例如監督員)來監視程式的狀態。 管理員可視需要使用命令列來重新啟動程式。
設定
預設行為
- Cron工作
consumers_runner
已啟用 - Cron工作
consumers_runner
執行所有已定義的使用者 - 每個消費者都會處理10000訊息,然後終止
INFO
如果您的Adobe Commerce存放區託管在Cloud平台上,請使用
CRON_CONSUMERS_RUNNER
設定consumers_runner
cron工作。特定設定
編輯/app/etc/env.php
檔案以設定cron工作consumers_runner
。
...
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 20000,
'consumers' => [
'consumer1',
'consumer2',
],
'multiple_processes' => [
'consumer1' => 4
]
],
...
-
cron_run
— 布林值,可啟用或停用consumers_runner
cron工作(預設=true
)。 -
max_messages
— 終止前,每個消費者必須處理的訊息數目上限(預設值=10000
)。 雖然我們不建議這麼做,但您可以使用0來防止消費者終止。 請參閱consumers_wait_for_messages
以設定消費者處理訊息佇列中訊息的方式。 -
consumers
— 字串陣列,指定要執行的使用者。 空陣列執行 所有 消費者。 -
multiple_processes
— 機碼值組的陣列,指定要在多少處理序中執行哪個取用者。 在Commerce 2.4.4或更新版本中支援。note info INFO 不建議在MySQL操作的佇列上執行多個取用者。 如需詳細資訊,請參閱將訊息佇列從MySQL變更為AMQP。 note info INFO 如果您的Adobe Commerce存放區託管於雲端平台,請使用 CONSUMERS_WAIT_FOR_MAX_MESSAGES
設定消費者處理訊息佇列訊息的方式。
請參閱啟動訊息佇列消費者。
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c