基本的な使用方法
ジョブハンドラ内で getter メソッドを通じて JobContext パラメーターにアクセスします。
public class SampleJobProcessor extends JavaProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
// ジョブおよびインスタンス識別子
long jobId = context.getJobId();
long instanceId = context.getJobInstanceId();
// スケジューリングメタデータ
DateTime scheduledTime = context.getScheduleTime();
DateTime dataTime = context.getDataTime();
// SchedulerX コンソールで設定された静的パラメーター
String params = context.getJobParameters();
// API 呼び出し経由で渡された動的パラメーター
String dynamicParams = context.getInstanceParameters();
// リトライ状態
int currentAttempt = context.getAttempt();
int maxRetries = context.getMaxAttempt();
System.out.println("Job " + jobId + ", instance " + instanceId
+ ", attempt " + currentAttempt + "/" + maxRetries);
return new ProcessResult(true);
}
}
ジョブおよびインスタンス識別子
| パラメーター | 型 | 説明 |
|---|
jobId | long | ジョブ ID。 |
jobInstanceId | long | ジョブインスタンス ID。 |
jobType | String | ジョブタイプ。 |
taskId | long | 分散ジョブ内のタスク ID。ルートタスク ID は 0 です。 |
taskName | String | タスク名。 |
task | Object | タスク本文。 |
スケジューリング時刻
| パラメーター | 型 | 説明 |
|---|
scheduleTime | DateTime | インスタンスのスケジュール時刻。 |
dataTime | DateTime | インスタンス上でジョブが実行される時刻。 |
ジョブパラメーター
| パラメーター | 型 | 説明 |
|---|
jobParameters | String | SchedulerX コンソールで設定された静的パラメーター。最大サイズ:10,000 バイト。 |
instanceParameters | String | API 呼び出しによってインスタンスがトリガーされた際に渡される動的パラメーター。 |
リトライパラメーター
| パラメーター | 型 | 説明 |
|---|
maxAttempt | int | ジョブインスタンスの最大リトライ回数。 |
attempt | int | ジョブインスタンスの現在のリトライ回数。 |
taskMaxAttempt | int | タスクの最大リトライ回数。 |
taskAttempt | int | タスクの現在のリトライ回数。 |
シャーディングパラメーター
実行モード が ブロードキャスト実行 または シャード実行 に設定されている場合にのみ利用可能です。
| パラメーター | 型 | 説明 |
|---|
shardingId | Long | シャード ID。ブロードキャスト実行 および シャード実行 モードで利用可能です。 |
shardingParameter | String | シャーディングパラメーター。シャード実行 モードでのみ利用可能です。 |
shardingNum | int | シャード総数。ブロードキャスト実行 および シャード実行 モードで利用可能です。 |
例:
public class ShardJobProcessor extends JavaProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
Long shardId = context.getShardingId();
int totalShards = context.getShardingNum();
String shardParam = context.getShardingParameter();
System.out.println("Processing shard " + shardId + " of " + totalShards);
return new ProcessResult(true);
}
}
ワークフローパラメーター
ジョブがワークフローの一部として実行される場合に利用可能です。
| パラメーター | 型 | 説明 |
|---|
workflowId | Long | ワークフロー ID。 |
wfInstanceId | long | ワークフローインスタンス ID。 |
upstreamData | List<JobInstanceData> | ワークフロー内の上流ジョブインスタンスからのデータ。ワークフローには複数の上流インスタンスが存在する可能性があるため、このパラメーターはリストを返します。 |
workflowParameters | String | ワークフローパラメーター。クライアントバージョン 1.14.2 以降が必要です。 |