複数HTTPリクエストを同じLabVIEW Web VIへ同時に送信し、並列で処理する

更新しました Apr 17, 2024

環境

ソフトウェア

  • LabVIEW

複数のHTTPリクエストを同じLabVIEW Web サービスに送信し、それらを並列処理したいと考えています。同じWeb サービスで複数のHTTP リクエストを並列処理するには、どのような設定を行う必要がありますか?


この資料では、LabVIEW Webサービスの作成とパブリッシュする方法の基本を学習できます。

複数のHTTP(POST)リクエストをWeb VIに同時に送信し、それらが並列処で理されるには、VIの再入可能プロパティを設定する必要があります。 LabVIEWは、デフォルトでVIを非再入可能実行として構成します。非再入可能実行では、1つのVIが他の複数のVIからサブVIとして同時に呼び出された場合、これらの呼び出しの1つのみだけがこのサブVIを実行することができます。
  1. 複数の HTTP リクエストを送信する Web VI を開き、 ファイル>>VI プロパティを選択します
  2. 実行カテゴリに移動し、クローン共有による再入実行またはクローン事前割り当てによる再入実行を選択します。
  3. OKをクリックして、VIを保存します。

キャプチャ3.PNG

この資料は、VIの再入可能実行プロパティと、 使用する再入実行のタイプを選択する方法について詳しく説明します。

以下の例では、複数のHTTP(POST)リクエストを同じWeb VI (クローン共有による再入実行を使用したParallel.vi)に送信されます。この Web VIはサブ VI (AnalysisWait.vi) を呼び出して単純な配列処理を実行し、VI実行開始時刻と終了時刻を出力します。
(サンプルプログラムは、この記事の下部にある添付ファイルからダウンロードできます)

キャプチャ4.PNG

postHTTPs.PNG

 


下の図から、VIの再入可能設定がクローン共有による再入実行に設定されている場合、全てのHTTPリクエストがほぼ同時に(StartTime) 処理されることがわかります。終了時刻(StopTime)はそれぞれ指定した待機時間(WaitTimeMs)経過後となっています。

キャプチャ5.PNG