เช็คโควต้าในการใช้งาน Google Apps Script
function checkAllQuotas() {
var quotas = {
// Email quotas
emailRemaining: MailApp.getRemainingDailyQuota(),
// Triggers quotas
triggersTotalAllowed: ScriptApp.getProjectTriggers().length,
triggersRemaining: 20 - ScriptApp.getProjectTriggers().length, // ขีดจำกัดปัจจุบันคือ 20 ต่อผู้ใช้
// Properties quotas
scriptPropertiesRemaining: PropertiesService.getScriptProperties().getKeys().length,
userPropertiesRemaining: PropertiesService.getUserProperties().getKeys().length,
documentPropertiesRemaining: PropertiesService.getDocumentProperties().getKeys().length,
// Lock quotas
scriptLockRemaining: LockService.getScriptLock().hasLock() ? "In use" : "Available",
userLockRemaining: LockService.getUserLock().hasLock() ? "In use" : "Available",
documentLockRemaining: LockService.getDocumentLock().hasLock() ? "In use" : "Available",
// Cache quotas
cacheRemaining: CacheService.getScriptCache().get('testKey') !== null ? "In use" : "Available",
// Spreadsheet quotas
spreadsheetQuotaRemaining: SpreadsheetApp.getActiveSpreadsheet() ? "Available" : "Not available or quota exceeded",
// Document quotas
documentQuotaRemaining: DocumentApp.getActiveDocument() ? "Available" : "Not available or quota exceeded"
};
// แสดงผลโควตาทั้งหมด
for (var key in quotas) {
Logger.log(key + ": " + quotas[key]);
}
return quotas;
}
// ตัวอย่างการใช้งาน
function example() {
var allQuotas = checkAllQuotas();
// ตัวอย่างการตรวจสอบและแจ้งเตือนสำหรับบางโควตา
if (allQuotas.emailRemaining < 50) {
Logger.log('Warning: Email quota is running low!');
}
if (allQuotas.executionTimeRemaining < 30) {
Logger.log('Warning: Script execution time is running low!');
}
if (allQuotas.driveUploadQuotaRemainingMB < 100) {
Logger.log('Warning: Drive upload quota is running low!');
}
}
ข้อมูล โควตาอีเมลที่เหลือ: 100
ข้อมูล จำนวน triggers ทั้งหมดที่อนุญาต: 0
ข้อมูล จำนวน triggers ที่เหลือ: 20
ข้อมูล จำนวน script properties ที่เหลือ: 0
ข้อมูล จำนวน user properties ที่เหลือ: 0
ข้อมูล จำนวน document properties ที่เหลือ: 0
ข้อมูล script lock ที่เหลือ: พร้อมใช้งาน
ข้อมูล user lock ที่เหลือ: พร้อมใช้งาน
ข้อมูล document lock ที่เหลือ: พร้อมใช้งาน
ข้อมูล cache ที่เหลือ: พร้อมใช้งาน
ข้อมูล โควตา spreadsheet ที่เหลือ: พร้อมใช้งาน
ข้อมูล โควตา document ที่เหลือ: ไม่พร้อมใช้งานหรือเกินโควตา
หมายเหตุเพิ่มเติม:
- ส่วนใหญ่ของโควตายังมีเหลือและพร้อมใช้งาน
- มีเพียงโควตา document ที่ไม่พร้อมใช้งานหรืออาจเกินโควตาแล้ว
- จำนวน triggers ทั้งหมดที่อนุญาตแสดงเป็น 0 ซึ่งอาจหมายถึงยังไม่มีการใช้งาน trigger ใดๆ ในโปรเจคนี้
- โควตาอีเมลยังเหลืออยู่ 100 ฉบับ