我有一個Google Apps腳本,它使用JSON Web API從站點獲取星際爭霸2錦標賽列表(使用UrlFetchApp),並在各種日曆(每個地區/聯盟組合的一個日曆)中創建相應的Google日曆活動。如何使用CalendarApp調試間歇性錯誤?
我有一個觸發設置爲每隔5分鐘,即電子郵件我馬上就錯誤,如果腳本正常完成,並添加任何事件或碰上我抓住了,它的郵件我以及任何錯誤。
大部分時間裏,有和腳本是無聲無必要的修改(使用ScriptDb中避免呼喚CalendarApp除非我需要我緩存JSON的信息)。然而,一夜之間我收到含有消息幾封電子郵件:
The resource you requested could not be located. (line 154)
Service error: CalendarApp: Error body {font-family: arial,sans-serif}
G o o g l e Error Cannot access the calendar you requested (line 155)
TypeError: Cannot call method "getEvents" of null. (line 155)
線154,155和156:
var calendar = CalendarApp.getCalendarById(calendars[region][league]);
var events = calendar.getEvents(new Date(1900, 1, 1), new Date());
events.forEach(function (event) { event.deleteEvent(); });
在腳本中的這一點我已經嘗試添加任何新事件我即將查詢每個日曆以刪除過去發生的任何事件。
這些錯誤似乎與CalendarApp的可用性的問題,但Dashboard並不表示該服務的任何問題。
我的項目重點是:MWhWmFSrL1dK3RJui6Aphb12cA4KNgw7R
我不希望客戶端計算機的互聯網連接很重要,因爲代碼正在雲中的某個Google主機上運行。我已經在上面引用的行中添加了try-catch塊,以便我更優雅地失敗一些。 (我已經有主事件在try塊中添加代碼)。 –
我同意它不應該有任何效果,但這是我的感覺......當然,這個速度問題只有當我手動運行腳本而不是定時器觸發時纔會引起注意。 –
也許這可能是有趣的寫一個try/catch結果日誌某處得到一些統計數據... –