Batas Utama#
| Batas | Nilai (akun gratis) |
|---|---|
| Waktu eksekusi per script | 6 menit |
| Email per hari | ~100–150 |
| UrlFetchApp per hari | 20.000 |
| Total trigger per project | 20 |
Akun Google Workspace memiliki batas lebih tinggi.
Masalah Umum: Terlalu Banyak Panggilan#
Menulis cell satu per satu dalam loop sangat lambat dan cepat habis kuota.
Example (SALAH):
for (let i = 0; i < 1000; i++) { sheet.getRange(i + 1, 1).setValue(data[i]); // 1000 panggilan}Batch Operation (Benar)#
Kumpulkan ke array, tulis sekali.
Example (BENAR):
const n = data.length;sheet.getRange(1, 1, n, 1).setValues(data.map((d) => [d])); // 1 panggilanKurangi Panggilan API#
Cache hasil yang dipakai berulang.
Example:
function proses() { const folder = DriveApp.getFolderById('ID'); // 1x data.forEach((r) => { folder.createFile(r.nama, r.isi); // pakai folder yang sama });}Hentikan Lebih Awal#
Example:
function cariBaris(target) { const values = sheet.getRange('A:A').getValues(); for (let i = 0; i < values.length; i++) { if (values[i][0] === target) return i + 1; } return -1;}Teknik Lain#
- Gunakan
getDataRange().getValues()sekali, proses di array, lalusetValues()sekali. - Hindari
getValue/setValuedi dalam loop. - Untuk data sangat besar, bagi menjadi batch 1.000 baris.
Warning
Error
Exceeded maximum execution timeberarti script lewat 6 menit. Pecah pekerjaan atau gunakan batch operation.
Next#
Pelajari Deploy & Maintain untuk Tim.