労働者財産

ワーカーは、実行中の Nginx インスタンスを使用せずに、web インスタンスとは別に実行するように定義できます。ただし、ワーカーは、Commerce アプリケーションで使用されているのと同じネットワークストレージを使用します。 ルーターがワーカーに公開リクエストを送信できないので、ワーカーインスタンスに(Node.js または Go を使用して) web サーバーを設定する必要はありません。 これにより、ワーカーインスタンスがバックグラウンドタスクや、デプロイメントをブロックするリスクのあるタスクを継続的に実行する場合に最適になります。

ワーカーの設定

ワーカーは、Pro ステージング環境および実稼動環境でのみ使用できます。 Pro 統合およびスターター環境は、CRON_CONSUMERS_RUNNER 変数の使用を選択できます。

ステージング環境または実稼動環境でワーカーを設定するには、Adobe Commerce サポートチケットを送信して、次の情報を含めます。

  • プロジェクト ID
  • 環境 ID
  • 作業者名
  • 開始コマンド

ワーカーごとに 1 つのプロセスを設定できます。 .magento.app.yaml ファイル内の基本的で一般的なワーカー設定は、次のようになります。

workers:
    queue:
        commands:
            start: |
                php ./bin/magento queue:consumers:start commerce.eventing.event.publish

この例では、リソース割り当ての小さい(サイズ S) レベルで queue という名前の単一のワーカーを定義し、起動時に php ./bin/magento コマンドを実行します。 その後、ワーカー queue はワーカープロセスとして各ノードで実行されます。 コマンドが終了すると、自動的に再起動されます。

コマンドと上書き

commands.start キーは、ワーカーアプリケーションでコマンドを起動するために必要です。 任意の有効なシェルコマンドを使用できますが、アプリケーションの言語を使用するのが理想的です。 start キーで指定されたコマンドが終了すると、自動的に再起動します。

IMPORTANT
deploy および post_deploy フックと crons コマンドは、web コンテナでのみ実行され、ワーカーインスタンスでは実行されません。

継承

sizerelationshipsaccessdiskmount および variables プロパティの定義は、明示的に上書きされない限り、ワーカーに継承されます。

次のプロパティは、 トップレベルの設定をオーバーライドする場合に最も一般的に使用されます。

  • size:単一のバックグラウンド・プロセスに割り当てるリソースを減らす
  • variables - アプリケーションに別の方法で実行するよう指示します

タイミングとキュー

各ワーカーは別のワーカーの後ろにキューを作成しますが、次の設定では、PHP コード内の 8 秒のスリープに関係なく、var/time.txt ファイルにタイムスタンプで一貫性のある 2 秒の分離が生成されます。

workers:
    time1:
        commands:
            start: 'php -r "sleep(8); echo time() . PHP_EOL;" >> var/time.txt& sleep 2'
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26