Pekerjaan terjadwal sering kali perlu memproses data yang telah tersedia sebelum pekerjaan tersebut dijalankan. Misalnya, pekerjaan harian yang dipicu pukul 00.30 mungkin perlu memproses data dari pukul 23.30 hari sebelumnya, tetapi waktu pemicu saja tidak mencerminkan jendela ketersediaan data yang sebenarnya.
SchedulerX menyediakan parameter Time offset yang menggeser waktu data yang dikembalikan oleh context.getDataTime(). Hal ini memungkinkan pekerjaan menargetkan jendela data yang tepat, terlepas dari waktu pemicu aktualnya.
Cara kerja
Saat suatu pekerjaan dijalankan, SchedulerX menghitung waktu data dengan menerapkan time offset yang dikonfigurasi ke waktu pemicu:
Waktu data = Waktu pemicu + Time offsetDi dalam pekerjaan, context.getDataTime() mengembalikan waktu yang telah disesuaikan ini, bukan waktu pemicu. Logika pekerjaan Anda menggunakan waktu tersebut untuk melakukan kueri atau memfilter data dari jendela waktu yang benar.
Contoh berikut menunjukkan bagaimana nilai offset memengaruhi waktu data:
| Jadwal | Waktu pemicu | Time offset | Waktu data (getDataTime()) |
|---|---|---|---|
| Harian pukul 00.30 | 00.30 hari ini | -3600 (1 jam) | 23.30 hari sebelumnya |
Nilai time offset dinyatakan dalam satuan detik. Nilai negatif menggeser waktu data ke masa lalu.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Agen SchedulerX yang terhubung ke aplikasi Anda (lihat topik Quick start)
Konfigurasikan time offset untuk suatu pekerjaan
Untuk mengonfigurasi time offset, implementasikan kelas pekerjaan yang membaca waktu data yang telah disesuaikan, lalu buat pekerjaan tersebut di Konsol SchedulerX dengan nilai offset yang ditentukan.
Langkah 1: Ambil waktu data di kelas pekerjaan Anda
Perluas JavaProcessor dan panggil context.getDataTime() untuk mengambil waktu data yang telah di-offset.
public class TestHelloJob extends JavaProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
System.out.println("hello schedulerx2.0");
// getDataTime() mengembalikan waktu pemicu yang telah disesuaikan dengan time offset.
// Gunakan waktu ini untuk melakukan kueri data dari jendela waktu yang benar.
System.out.println("dataTime=" + context.getDataTime().toString("yyyy-MM-dd HH:mm:ss"));
return new ProcessResult(true);
}
}| Elemen | Deskripsi |
|---|---|
JavaProcessor | Kelas dasar untuk pekerjaan SchedulerX |
context.getDataTime() | Mengembalikan waktu data, yaitu waktu pemicu ditambah time offset yang dikonfigurasi |
ProcessResult(true) | Menandakan bahwa pekerjaan berhasil diselesaikan |
Langkah 2: Buat pekerjaan dan atur time offset
Buat pekerjaan di Konsol SchedulerX. Untuk detailnya, lihat Create a job.
Pada halaman wizard Timing configuration, atur parameter Time offset.
Parameter Nilai Deskripsi Time offset -3600Menggeser waktu data 1 jam ke masa lalu. Satuan: detik.
Dengan konfigurasi ini, pekerjaan dipicu pada pukul 00.30, tetapi context.getDataTime() mengembalikan pukul 23.30 pada hari sebelumnya.
Verifikasi hasil
Setelah pekerjaan dijalankan, buka halaman Instances.
Temukan instans pekerjaan tersebut dan klik Details di kolom Operation.
Pada halaman Job Instance Details, klik Basic Information.
Konfirmasi bahwa bidang Data Time menampilkan waktu yang telah di-offset sesuai ekspektasi (misalnya, 23.30 hari sebelumnya, bukan 00.30).
Langkah selanjutnya
Untuk mengelola pekerjaan, lihat Create a job.