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
jobyang telah di tetapkan. Anggap,jobadalah sebuah class danjobinstanceadalah sebuah object dari classjob. Contoh,jobmembaca file DPK jalan setiap awal bulan, berarti kita memiliki 1 JobInstance setiap bulannya. 1jobyang berjalan sama dengan 1jobinstance. - JobParameters – Parameter-parameter yang digunakan oleh
JobInstance. Contoh, secara default, laporanCombined-Statementyang 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 nilaiNke dalamJobParameters, dimanaJobParametersnanti akan di lemparkan sebagai baris perintah argumen. - JobExecution – Setiap menjalankan
JobInstanceakan menghasilkanJobExecution. Contoh, ketika job membaca file DPK gagal, lalu job di jalankan lagi dan berhasil. Maka kita akan memiliki 1JobInstancedan 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,JobExecutiondanStepExecution. Repositori dibutuhkan untuk mengetahui apakah sebelumnyajobgagal 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 menggunakanJobRepositoryuntuk mendapakanJobExecutionyang 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 logicdari data yang di hasilkan olehItemReadersebelum di lemparkan keItemWritter.
Dalam tulisan selanjutnya kita akan melihat contoh dari penggunaan masing-masing item tersebut.