カスタムバッチ発行ルールの作成
スケジューラは、バッチ発行ルール を使用して、到着するジョブが形成中のバッチに追加する数量を定義します。このルールは、バッチ数量ルールとも呼ばれます。
注: カスタムルールの作成に必要な手順のサマリは、「カスタムスケジュールルールの作成」を参照してください。このトピックで説明した関数の詳細については、弊社サポートサイトからダウンロードできる
『Scheduling Customization Guide』
(スケジューリングカスタマイズガイド)を参照してください。
バッチ発行ルールの論理
カスタムバッチ発行ルールを作成し、対応するバッチ発行関数を作成する前に、バッチ発行関数で使用する論理を理解しておく必要があります。バッチ発行関数は、バッチ定義が指定されている作業にジョブが到着すると呼び出されます。
バッチ発行関数が呼び出されると、関数が形成中のバッチに追加する数量を決定し、その数量によって、形成中のバッチがいつ発行されるかが決定します。
関数の命名
カスタムバッチ発行関数には、ユーザによる呼び出し可能な標準の関数名 ではない任意の名前を付けることができます。
引数
#include "factor.h"
double brrl(ldp, batch)
LOAD *ldp; /* pointer to the load */
BATCHDEF *batch; /* pointer to the batch definition */
この関数は、2 つの引数として、負荷へのポインタ(タイプ: LOAD *)とバッチへのポインター(タイプ: BATCHDEF *)を受け入れます。BATCHDEF *)を受け入れます。
戻り値
関数は、形成中のバッチに追加される値を返します(タイプ:double)
以下に、ジョブ内の数量に基づくバッチ発行関数の例を示します。
double brrl (LOAD *ldp, BATCHDEF *batch)
/*-----------------------------------------------------------------
Batch release rule which adds the quantity on the job.
ARGS:
ldp - pointer to the arriving load (job)
batch - pointer to the batch that this load will follow
RETURNS: job quantity
-----------------------------------------------------------------*/
{
return((double)ldp->losize);
{
カスタム関数のインストール
カスタム発行関数をスケジューラで使用できるようにするには、sedfbq 関数を呼び出すことにより、ucini1 からカスタム発行関数を「インストール」する必要があります。この関数には、次の順序の 2 つの引数があります。
- 関数に含まれるカスタム論理のバッチ発行ルールの番号
- バッチ発行関数のアドレス
たとえば、上記のルール「brrll」をルール位置 39 にインストールするには、以下のようにします。
sedfbq (39, brrl);