Penggunaan dasar
Akses parameter JobContext melalui metode getter dalam penanganan pekerjaan Anda:
public class SampleJobProcessor extends JavaProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
// Pengidentifikasi pekerjaan dan instans
long jobId = context.getJobId();
long instanceId = context.getJobInstanceId();
// Metadata penjadwalan
DateTime scheduledTime = context.getScheduleTime();
DateTime dataTime = context.getDataTime();
// Parameter statis yang dikonfigurasi di Konsol SchedulerX
String params = context.getJobParameters();
// Parameter dinamis yang diteruskan melalui panggilan API
String dynamicParams = context.getInstanceParameters();
// Status retry
int currentAttempt = context.getAttempt();
int maxRetries = context.getMaxAttempt();
System.out.println("Job " + jobId + ", instance " + instanceId
+ ", attempt " + currentAttempt + "/" + maxRetries);
return new ProcessResult(true);
}
}
Pengidentifikasi pekerjaan dan instans
| Parameter | Tipe | Deskripsi |
|---|
jobId | long | ID Pekerjaan. |
jobInstanceId | long | ID instans pekerjaan. |
jobType | String | Tipe pekerjaan. |
taskId | long | ID tugas dalam pekerjaan terdistribusi. ID tugas akar adalah 0. |
taskName | String | Nama tugas. |
task | Object | Isi tugas. |
Waktu penjadwalan
| Parameter | Tipe | Deskripsi |
|---|
scheduleTime | DateTime | Waktu terjadwal instans. |
dataTime | DateTime | Waktu saat pekerjaan dijalankan pada instans tersebut. |
Parameter pekerjaan
| Parameter | Tipe | Deskripsi |
|---|
jobParameters | String | Parameter statis yang dikonfigurasi di Konsol SchedulerX. Ukuran maksimum: 10.000 byte. |
instanceParameters | String | Parameter dinamis yang diteruskan saat instans dipicu melalui panggilan API. |
Parameter retry
| Parameter | Tipe | Deskripsi |
|---|
maxAttempt | int | Jumlah maksimum retry untuk instans pekerjaan. |
attempt | int | Jumlah retry saat ini untuk instans pekerjaan. |
taskMaxAttempt | int | Jumlah maksimum retry untuk tugas. |
taskAttempt | int | Jumlah retry saat ini untuk tugas. |
Parameter sharding
Hanya tersedia ketika Execution mode diatur ke Broadcast run atau Shard run.
| Parameter | Tipe | Deskripsi |
|---|
shardingId | Long | ID shard. Tersedia dalam mode Broadcast run dan Shard run. |
shardingParameter | String | Parameter sharding. Hanya tersedia dalam mode Shard run. |
shardingNum | int | Jumlah total shard. Tersedia dalam mode Broadcast run dan Shard run. |
Contoh:
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);
}
}
Parameter alur kerja
Tersedia ketika pekerjaan dijalankan sebagai bagian dari alur kerja.
| Parameter | Tipe | Deskripsi |
|---|
workflowId | Long | ID Alur kerja. |
wfInstanceId | long | ID instans alur kerja. |
upstreamData | List<JobInstanceData> | Data dari instans pekerjaan hulu dalam alur kerja. Sebuah alur kerja dapat memiliki beberapa instans hulu, sehingga parameter ini mengembalikan daftar. |
workflowParameters | String | Parameter alur kerja. Memerlukan versi client 1.14.2 atau lebih baru. |