Files
webstatement/app/Jobs/ProcessArrangementDataJob.php
daengdeni 1b3e0ed30d feat(webstatement): implement batch processing for data jobs
- Tambahkan pemrosesan data secara bertahap (chunking) dengan konstanta `CHUNK_SIZE` untuk mengurangi penggunaan memori dan menangani data dalam jumlah besar.
- Perbarui `ProcessArrangementDataJob`:
  - Tambahkan properti `arrangementBatch` untuk menyimpan batch data sementara.
  - Implementasikan metode `addToBatch` untuk menambahkan data ke batch.
  - Implementasikan metode `saveBatch` untuk menyimpan data batch ke database menggunakan metode bulk `TempArrangement::upsert`.
  - Tambahkan logging untuk melacak progress pemrosesan data per chunk.
  - Reset batch setelah penyimpanan atau ketika terjadi error untuk menghindari pemrosesan ulang data yang gagal.
- Perbarui `ProcessBillDetailDataJob`:
  - Tambahkan properti `billDetailBatch` untuk menyimpan batch data sementara.
  - Implementasikan metode `addToBatch` untuk menambahkan data ke batch.
  - Implementasikan metode `saveBatch` untuk menyimpan data batch ke database menggunakan metode bulk `TempBillDetail::upsert`.
  - Tambahkan logging untuk melacak progress pemrosesan data per chunk.
  - Reset batch setelah penyimpanan atau ketika terjadi error untuk menghindari pemrosesan ulang data yang gagal.
- Perbaiki penghitungan error count dengan menambahkannya saat terjadi error pada pemrosesan batch.
- Tambahkan timestamp (`created_at` dan `updated_at`) pada setiap record dalam batch sebelum disimpan ke database.
- Lakukan cleanup batch secara otomatis setelah pemrosesan selesai.
2025-05-28 09:29:46 +07:00

7.2 KiB