Berkenalan Dengan Spring-Batch
Spring batch adalah framework untuk melakukan proses batch, mengeksekusi serangkaian job
. Dimana job
terdiri dari banyak step
dan setiap step
terdiri dari proses READ-PROCESS-WRITE
atau SINGLE-OPERATION
(tasklet
).
Berikut beberapa istilah yang sering di gunakan di Spring Batch:
- Job – Menggambarkan suatu pekerjaan. Misal, membaca file DPK (Dana Pihak Ketiga), lalu menyimpannya ke dalam database. Setelah itu menampilkannya ke dalam laporan
Combined-Statement
. - Step – Sebuah job terdiri dari satu atau dua step. Dalam contoh di atas, misalnya:
- Step 1: Membaca File DPK & Meyimpan ke dalam database
- Step 2: Menampilkan data DPK ke dalam laporan
Combined-Statement
- JobInstance – Sebuah instance yang sedang berjalan dari sebuah
job
yang telah di tetapkan. Anggap,job
adalah sebuah class danjobinstance
adalah sebuah object dari classjob
. Contoh,job
membaca file DPK jalan setiap awal bulan, berarti kita memiliki 1 JobInstance setiap bulannya. 1job
yang berjalan sama dengan 1jobinstance
. - JobParameters – Parameter-parameter yang digunakan oleh
JobInstance
. Contoh, secara default, laporanCombined-Statement
yang di generate adalah untuk periode T-1, tapi kita ingin membuatnya lebih dinamis, jadi kita bisa generatekan laporan untuk periode T-N, jadi, kita mesti melemparkan nilaiN
ke dalamJobParameters
, dimanaJobParameters
nanti akan di lemparkan sebagai baris perintah argumen. - JobExecution – Setiap menjalankan
JobInstance
akan menghasilkanJobExecution
. Contoh, ketika job membaca file DPK gagal, lalu job di jalankan lagi dan berhasil. Maka kita akan memiliki 1JobInstance
dan memiliki 2JobExecution
, 1 yang berhasil & 1 lagi yang gagal. - StepExecution – Sama seperti
JobExecution
, tapi ini untuk menggambarkan hasil dariStep
. - JobRepository – Sebuah persistent store untuk menyimpan semua informasi meta-data
job
. Menyimpan informasiJobInstance
,JobExecution
danStepExecution
. Repositori dibutuhkan untuk mengetahui apakah sebelumnyajob
gagal atau tidak, jika gagal maka bisa di jalankan kembali. Secara default informasi ini di simpan di memory, tapi kita bisa setting untuk menyimpannya di database. - JobLauncher – Seperti namanya, object ini memungkinkan kita untuk memulai sebuah
job
. Ia menggunakanJobRepository
untuk mendapakanJobExecution
yang valid.
SINGLE-OPERATION
- TaskLet – Situasi dimana kita tidak memiliki input and pengolahan keluaran (
SINGLE-OPERATION
). Misalnya, kita ingin memanggil/menjalankan sebuah store procedure.
READ-PROCESS-WRITE
- ItemReader – Sebuah abstract class yang digunakan untuk menggambarkan sebuah object yang memungkinkan kita untuk membaca sebuah object yang ingin kita proses. Misal, kita ingin membaca file DPK, atau kita ingin membaca data dari database.
- ItemWritter – Sebuah abstract class yang digunakan untuk menulis hasil akhir dari proses batch. Misal, kita ingin meng-generate laporan
Combined-Statement
. - ItemProcessor – Sebuah abstract class yang digunakan untuk melakukan
business logic
dari data yang di hasilkan olehItemReader
sebelum di lemparkan keItemWritter
.
Dalam tulisan selanjutnya kita akan melihat contoh dari penggunaan masing-masing item tersebut.