メッセージキューの管理

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 の設定と実行を参照してください。

Supervisor などのプロセスマネージャーを使用して、プロセスのステータスを監視することもできます。 マネージャーは、コマンドラインを使用して、必要に応じてプロセスを再起動できます。

設定

デフォルトの動作

  • Cron ジョブ consumers_runner が有効化されています
  • Cron ジョブ consumers_runner 定義されたすべてのコンシューマーを実行
  • 各コンシューマーは 10000 メッセージを処理してから終了します
INFO
Adobe Commerce ストアがクラウドプラットフォーム上にホストされている場合は、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 を使用して、コンシューマーがメッセージキューからのメッセージを処理する方法を設定します。

メッセージキューコンシューマーの開始を参照してください。

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c