Skip to main content

セットアップおよびティアダウン処理の指定

作業キュー・マネージャでは、通常、それぞれの作業キューに複数のワーカ・ジョブが含まれます。ワーカ・ジョブよりも多くの作業項目がある場合、ワーカ・ジョブは複数の作業項目を一度に 1 つずつ実行します。これらの作業項目が開始する前に必要なセットアップ手順を特定し、作業項目をキューに追加する前に該当ロジックをすべて呼び出すと、便利です。

%SYSTEM.WorkMgrOpens in a new tab クラスは Setup() メソッドと TearDown() メソッドを備えており、これらを使用して、ワーカ・ジョブのセットアップ・アクティビティとクリーンアップ・アクティビティを定義できます。例えば、Setup() を使って、ワーカ・ジョブ内で使用するためにパブリック変数を設定し、TearDown() を使用してこれらの変数を削除します。また、Setup() を使用してロックを取得したり、プロセス・プライベート・グローバルを設定したりできます。これらのロックを解放したりグローバルを削除したりするには、TearDown() を使用します。

どちらの場合も、Queue() または QueueCallback() を呼び出す前に、Setup()TearDown()、またはその両方を呼び出す必要があります。Setup() メソッドと TearDown() メソッドは、作業キュー・マネージャによってのみ使用される内部グローバルに情報を保存します。いずれかのワーカ・ジョブがこのキューの最初の作業項目を開始すると、そのワーカ・ジョブは、最初に作業マネージャ・キューのグローバルをチェックして、セットアップ・ロジックがあるかどうかを確認します。ロジックがある場合、ワーカ・ジョブはそのロジックを実行してから作業項目を開始します。ワーカ・ジョブはそれ以上セットアップ・ロジックを実行しません。同様に、いずれかのワーカ・ジョブがキューの最後の作業項目を完了したら、そのワーカ・ジョブはティアダウン・ロジックがあるかどうかを確認します。ロジックがある場合、ワーカ・ジョブはそのロジックを実行します。

セットアップ

method Setup(work As %String, args... As %String) as %Status

キューの最初の項目を処理する前に呼び出すワーカ・プロセスのコードを指定します。このメソッドを使用する場合は、Queue() メソッドまたは QueueCallback メソッドを呼び出す前に呼び出す必要があります。Setup() は以下の引数を受け入れます。

work

実行するセットアップ・コードです。この引数に対してサポートされる構文は、Queue() メソッドの work 引数に対してサポートされている構文と同じです。この構文については、前のセクションで説明しています。

args

このコードの引数のコンマ区切りリストです。多次元配列を引数として渡すには、その引数の前にピリオドを付けて、参照によって渡されるようにします。

これらの引数で渡すデータのサイズは比較的小さく抑える必要があります。大量の情報を提供するには、引数を渡す代わりにグローバルを使用できます。

ティアダウン

method TearDown(work As %String, args... As %String) as %Status

キューの最後の項目を処理した後で、プロセスを前の状態にリストアするための呼び出しを行うワーカ・プロセスのコードを指定します。このメソッドを使用する場合は、Queue() メソッドまたは QueueCallback メソッドを呼び出す前に呼び出す必要があります。

TearDown() は、Setup() メソッドと同じ引数を受け入れます。ただし、work 引数で、実行するティアダウン・コードを指定します。

FeedbackOpens in a new tab