0

2 つのサーバーに同じコードがあります。

バッチジョブをキューに追加するジョブがあります

static void Job_ScheduleBatch2(Args _args)
{
BatchHeader batHeader;
BatchInfo batInfo;
RunBaseBatch rbbTask;
str sParmCaption = "My Demonstration (b351) 2014-22-09T04:09";
SysRecurrenceData sysRecurrenceData = SysRecurrence::defaultRecurrence();
;
sysRecurrenceData = SysRecurrence::setRecurrenceStartDateTime(sysRecurrenceData, DateTimeUtil::utcNow());
sysRecurrenceData = SysRecurrence::setRecurrenceUnit(sysRecurrenceData,     SysRecurrenceUnit::Minute,1);

rbbTask = new Batch4DemoClass();
batInfo = rbbTask .batchInfo();
batInfo .parmCaption(sParmCaption);
batInfo .parmGroupId(""); // The "Empty batch group".
batHeader = BatchHeader ::construct();
batHeader .addTask(rbbTask);
batHeader.parmRecurrenceData(sysRecurrenceData);
//batHeader.parmAlerts(NoYes::Yes,NoYes::Yes,NoYes::Yes,NoYes::Yes,NoYes::Yes);
batHeader.addUserAlerts(curUserId(),NoYes::No,NoYes::No,NoYes::No,NoYes::Yes,NoYes::No);
batHeader .save();
info(strFmt("'%1' batch has been scheduled.", sParmCaption));
}

そして私はバッチジョブを持っています

class Batch4DemoClass extends RunBaseBatch
{
int methodVariable1;
int metodVariable2;

#define.CurrentVersion(1)
#localmacro.CurrentList
    methodVariable1,
    metodVariable2
endmacro
}

public container pack()
{

 return [#CurrentVersion,#CurrentList];
}


public void run()
{
    // The purpose of your job.
    info(strFmt("epeating batch job Hello from Batch4DemoClass .run at %1"
        ,DateTimeUtil ::toStr(
            DateTimeUtil ::utcNow())
        ));

}

public boolean unpack(container _packedClass)
{
Version version = RunBase::getVersion(_packedClass);

switch (version)
{
    case #CurrentVersion:
        [version,#CurrentList] = _packedClass;
        break;

    default:
        return false;

}
return true;
}

あるサーバーでは実行され、バッチ履歴ではメッセージがバッチログに保存されていることがわかり、他のサーバーでは何もしません。1 つのサーバーは R2 (実行中) と R3 (実行されていない) です。

どちらのコードも CIL に変換されます。どちらのサーバーもバッチ サーバーです。USMF/システム管理/エリア ページの問い合わせでバッチ ジョブを確認できます。私が見つけることができる唯一の違いは、R2 のジョブが AOS インスタンス名を一般的に入力し、R3 では空であることです。R2 では、ログとバッチ履歴でその情報メッセージを確認できますが、R3 には何もありません。

バッチジョブを実行する方法はありますか?

4

2 に答える 2

2

AOS インスタンスをバッチ サーバーとして構成する方法を参照してください。

3 つの前提条件があります。

  1. バッチ サーバーとしてマーク
  2. 時間間隔が正しく設定されている
  3. バッチグループが正しく設定されました

アップデート:

バッチ ジョブのユーザーを削除すると、バッチ ジョブが完了しなくなる場合があります。実行キューがいっぱいになると、それ以上の処理は行われません。問題のあるバッチ ジョブを削除することは問題があります。所有者だけが削除できるからです。次に、変更を検討しBatchJob.aosValidateDeleteます。

于 2014-09-23T12:23:15.173 に答える