Home > コンセプトペーパ > Magic xpi 4.x のアーキテクチャ > アーキテクチャーの概要 > スレッドとワーカ

スレッドとワーカ

Magic xpi4.xは、2種類の個別のタイプのスレッドを持っています。

サーバアーキテクチャがどのように働くかのビジュアルな説明を参照するには、ここをクリックしてください。

トリガアーキテクチャの詳細については、このイメージを参照してください。

フロースレッド (フローワーカ)

これらは、「フローワーカ」とも呼ばれます。すなわち、フローを実行することができるスレッドです。フローワーカは、フローステップを実行します。フローワーカが開始され、SpaceのステータスがREADY_FOR_USEであるフロー呼出しリクエスト(メッセージ)を待ちます。フロー呼出しリクエスト(メッセージ)が作成されたら、有効なフローワーカはSpaceのステータスをIN_PROCESSに変更します。2つのワーカが同じメッセージを実行することを防止するため、それはトランザクション内で行われ、メッセージペイロード内で有効なデータを使用して、メッセージ内で定義された要求されたフローを実行します。

詳細なモニタリング、トラブルシューティング、そしてメンテナンスを可能にするために、フローワーカはその処理の間、Spaceに詳細なステータス情報を維持しています。フロー内で各ステップを実行する前に、ワーカは現在のフローステータスによってSpaceを更新し、プロジェクトメタデータに基づいて、やるべきことをチェックします。

フローが完了したら、ワーカはSpaceのフロー呼出しリクエストメッセージのステータスをDONEに更新し、追加の新しいメッセージが処理されるのを待ち始めます。

新しいプロセスが開始される前に、ビジネスプロセスが完了することを保証してSpaceからのメッセージを読み込む時、Magic.iniファイルのWorkerReadDeeperMessagesfirst= flagはMagic xpiに、より高い階層を持つメッセージに優先度を付けるように指示します。

ルートメッセージのための処理戦略は、先入れ先出し(FIFO)ですが、実行ツリー(並行ステップ)でより深いメッセージはより高い優先事項を持っていて、どのような待ちのルートメッセージの前ででも処理されます。新しいルートメッセージが処理される前に、この戦略は実行ツリーのより迅速な完了を可能にします。

トリガスレッド (トリガワーカ)

これらは、外部のイベントに対してポーリングまたはリスニングに責任があり、Space内でフロー呼出しリクエストを作成することによってフローを開始しているスレッドです。トリガスレッドが開始され、外部のイベントが発行されることを待ちます。そのようなイベントが発生したら、有効なフローワーカによって処理されるイベントデータ(ペイロード)によって、トリガはフロー呼出しリクエスト(メッセージ)を作成します。トリガは同時的でも非同期でもかまいません。

各Magic xpi ワーカは、特定のMagic xpi プロジェクトのリクエストを処理することに専念しています。同じIMDG/Space上の複数のプロジェクトを実行する場合、各プロジェクトは専門のMagic xpiエンジンとワーカを割り当てる必要があります。