メッセージキューの管理
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>
...
cron
は、ビジネスニーズに応じてスケジュールを設定します。cron
(Commerceを使用)。次のようなプロセスマネージャーを使用することもできます 監督者 プロセスのステータスを監視します。 マネージャーは、コマンドラインを使用して、必要に応じてプロセスを再起動できます。
設定
デフォルトの動作
- Cron ジョブ
consumers_runner
有効 - Cron ジョブ
consumers_runner
定義されたすべてのコンシューマーを実行 - 各コンシューマーは 10000 メッセージを処理してから終了します
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
– 実行するコンシューマを指定する文字列の配列。 空の配列が実行される all 消費者。 -
multiple_processes
- プロセス数で実行するコンシューマーを指定するキーと値のペアの配列。 Commerce 2.4.4 以降でサポートされます。note info INFO MySQL 操作キューで複数のコンシューマーを実行することはお勧めしません。 参照: メッセージキューを MySQL から AMQP に変更 を参照してください。 note info INFO Adobe Commerce ストアがクラウドプラットフォームでホストされている場合は、 CONSUMERS_WAIT_FOR_MAX_MESSAGES
コンシューマーがメッセージキューからのメッセージを処理する方法を設定します。
参照: メッセージキューコンシューマーの開始.