- 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.
7.2 KiB
7.2 KiB