ジョブの結果をキャッシュする

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ジョブの構成の例 >

ジョブの結果をキャッシュする

この例では、( キャッシュプロデューサーとして参照される)ジョブの結果をキャッシュし、 ( キャッシュコンシューマーとして参照される)他のジョブ内で使用する方法が説明されています。  両方のジョブは、次の振る舞いを持つ Web サービスとして公開されます:

 

キャッシュプロデューサー Web サービスが呼び出されると、再帰的にディレクトリのコンテンツがリストされ、キャッシュを作成または更新し、ブラウザー内に結果を出力します。
キャッシュコンシューマー Web サービスが呼び出されると、キャッシュプロデューサーサービスにより作成されたキャッシュを読み取り、ブラウザー内に結果を出力します。

 

目的は、両方のジョブの実行にかかった時間を比較し、2番目のジョブの実行がキャッシュされたデータを使用することにより、1番目のジョブの実行よりも大幅に速いかを確認することです。

 

必要条件

必須のライセンス: FlowForce Server
FlowForce Server が構成された ネットワークアドレスとポートで動作していること (以下を参照: ネットワークアドレスとポートの設定)。
コンテナーの1つでパーミッションを有する FlowForce Server ユーザーアカウントを有していること (デフォルトでは、 /public コンテナー には、認証されたユーザーがアクセスすることができます)。

 

ヒント

この例は、 Windows パスとコマンドを使用していますが、 パスとコマンドを必要に応じて変更すると、他のオペレーティングシステム上でテストすることができます。

 

キャッシュプロシージャとキャッシュコンシューマージョブの作成

1.「構成」をクリックし、 /public コンテナーに移動します。
2.「作成」をクリックし、 「ジョブの作成」をクリックします。
3.ジョブ名のボックスに、DirectoryListing を入力します。
4.実行ステップで、 次の設定を持つ新しい実効ステップを追加します:

 

実行関数

次を参照します: /system/shell/commandline 関数。

コマンド

以下のシェルコマンドを入力します:

 

dir /s

 

Windows では、このコマンドは再帰的に作業ディレクトリのコンテンツをリストします。  (次の設定を参照してください)。

作業ディレクトリ

値を FlowForce Server が作動するマシン上のディレクトリに設定します。 例:

 

c:\

ステップの結果を割り当て

次のステップ内で実行ステップにより返された値を参照する必要があるため、名前が必要になります。この例のスコープのため、dir をこのフィールドの値として入力します。

 

5.実行ステップで、 次の設定を持つ新しい実効ステップを追加します:

 

実行関数

次を参照します: /system/compute 関数。

以下の FlowForce Server 式を入力します:

 

stdout(dir)

 

stdout 関数は、前の実行ステップにより返されたフォーマットされていない結果をデータのストリームに変換します (以下を参照: ステップ結果関数 )。

 

6.実行の結果で、 戻り値の型をストリームに設定します。既に気がついているかも知れませんが、ジョブの最後の実行ステップから返された同じデータの型に設定します。
7.キャッシュの結果から、 「結果をキャッシュする」 チェックボックスを選択します。
8.Auto-create 新規 キャッシュコンシューマージョブ チェックボックスを選択して、 DirectoryListingCached を Web サービスの名前として入力します。
9.サービスから 「このジョブを HTTP を介して利用可能にする」 チェックボックスをクリックして選択し、 DirectoryListing をサービスの名前として入力します。

 

この段階では、ジョブは以下のようになります (異なるパスまたはシェルコマンドが使用されていないことを想定して )。

ExampleCacheJob

10.資格情報から、既存の資格情報の記録、または、ローカルの資格情報を指定します。 (以下を参照: 資格情報 )。
11. 「保存」をクリックします。

 

 

この段階では、 キャッシュプロデューサーとキャッシュコンシューマージョブの双方の構成が完了されました。両方のジョブのパフォーマンスを比較するために、以下を行ってください:

 

1.ブラウザー内キャッシュプロデューサーサービス (DirectoryListing) の URL にアクセスします: http://[FlowForceServer]:[Port]/service/DirectoryListing (Web サービスへのアクセスに問題がある場合は、構成されたネットワークアドレスとポート をチェックしてください)。 ジョブが c:\ ディレクトリのコンテンツを再帰的にリストするように構成されているため、完了するまでに数分かかる可能性があります。
2.ジョブを完了するまでかかった時間を確認するために、ジョブログを参照してください  (以下を参照: ジョブのログを確認する )。
3.次に、 キャッシュコンシューマー サービス (DirectoryListingCached )に対しても同じ処理を行ってください。 このサービスは、既存のディレクトリリストの代わりにキャッシュされたデータを使用するので、短い時間で完了することが期待されます。

(C) 2019 Altova GmbH