Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //пример запуска с пятью попытками
- function test(){
- retry(5, get, '1ZkjhrxFQ26x_aRWth2D', 'Лист5');
- }
- function get(id, range){
- let get_params= '/'+ id +'/values/' + encodeURIComponent(range) + '?'
- + '&valueRenderOption=FORMATTED_VALUE'
- + '&dateTimeRenderOption=SERIAL_NUMBER'
- // + '&majorDimension=ROWS'
- let api_url = sheets_api_url + get_params;
- let params = {
- method: "GET",
- muteHttpExceptions: true,
- headers: {
- Authorization: "Bearer " + ScriptApp.getOAuthToken(),
- 'Accept': "application/json;"
- }
- };
- return JSON.parse(UrlFetchApp.fetch(api_url, params)).values;
- }
- function append(id, range, values){
- let get_params= '/'+ id +'/values/' + encodeURIComponent(range) +':append'
- + '?responseDateTimeRenderOption=SERIAL_NUMBER'
- + '&responseValueRenderOption=FORMATTED_VALUE'
- + '&valueInputOption=USER_ENTERED';
- let api_url = sheets_api_url + get_params ;
- let data = {
- 'range': range,
- 'majorDimension': 'ROWS',
- 'values': values
- };
- let params = {
- method: "POST",
- muteHttpExceptions: true,
- contentType: 'application/json',
- payload: JSON.stringify(data),
- headers: {
- Authorization: "Bearer " + ScriptApp.getOAuthToken(),
- 'Accept': "application/json;"
- }
- };
- return JSON.parse(UrlFetchApp.fetch(api_url, params));
- }
- function retry(n, func, ...args) {
- for(let i = 0; i < Math.min(n, 9); i++) {
- try {
- return func(...args)
- } catch(e) {
- Logger.log("Retry " + (i+1) + " failed, waiting")
- Logger.log(e)
- Utilities.sleep(i * 1000)
- }
- }
- throw "Number of tries exceeded, aborting"
- }
Add Comment
Please, Sign In to add comment