- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
同时使用 UrlFetchApp.fetch
在谷歌驱动器中下载 pdf blob方法导致两种类型的错误:
</div></div>This file might be unavailable right now due to heavy traffic. <a href="">Try again</a>.</div> [Written in downloaded PDF]
异常:超时
代码片段:
function downloadasPDF(optSSId, optSheetId)
{
var ss = (optSSId) ? SpreadsheetApp.openById(optSSId) : SpreadsheetApp.getActiveSpreadsheet();
var preURL=ss.getUrl() //ss is an spreadsheet reference
var url = preURL.replace(/edit.*/,'');
var folder = DriveApp.getFolderById(FolderID);
// Get array of all sheets in spreadsheet
var sheets = ss.getSheets();
for (var i=0; i<sheets.length; i++) {
//Sheet length is 100+
Utilities.sleep("5000")
var sheet = sheets[i];
// If provided a optSheetId, only save it.
if (optSheetId && optSheetId !== sheet.getSheetId()) continue;
//additional parameters for exporting the sheet as a pdf
var url_ext = 'export?exportFormat=pdf&format=pdf' //export as pdf
+ '&gid=' + sheet.getSheetId() //the sheet's Id
+ '&gridlines=false' // hide gridlines
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
},
muteHttpExceptions: true,
}
var response = UrlFetchApp.fetch(url + url_ext, options);
var blob = response.getBlob().setName(spreadsheet.getName() + ' - ' + sheet.getName() + '.pdf');
folder.createFile(blob);
}
为了解决上述问题,我正在使用:
Utilities.sleep(5000)
但仍然有一些文件导致上述错误 1。
问题:除了 sleep 之外,我们还有其他更好的方法来处理上述两种情况吗?
注意:我使用的是 G Suite Enterprise,要下载的工作表数量大约在 100-150 之间,每张工作表填充 240 个单元格,其余单元格为空。
最佳答案
使用指数退避函数在失败时以指数方式休眠。失败可以用 .getResponseCode()
检查:
var response = (function exponentialBackoff(i) {
Utilities.sleep(Math.pow(2, i) * 1000);
let data = UrlFetchApp.fetch(url + url_ext, options);
if (data.getResponseCode() !== 200) return exponentialBackoff(++i);
else return data;
})(1);
关于javascript - UrlFetchApp.fetch 抛出交通繁忙 |超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62855667/
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以使为on-topic。 6
我们正在使用 PHP 和 Mysql 开发一个基于 Web 的应用程序。如您所知,使用 Web 界面备份大型数据库存在限制,因此我需要一个解决方案来通过以下条件备份我们的大型数据库: 该过程可以在没有
有什么方法可以检测主线程何时被锁定/忙碌(也就是不会响应触摸事件)? 可能的方向检查 dispatch_get_main_queue 的大小(但我不知道如何操作这个对象来查看它的大小) [[UIApp
我已在 Windows 7 64 位上安装了 WAMP。当我尝试启动它时,它说端口 80 被“服务器:Microsoft HTTPAPI/2.0”使用。 我检查了一下,没有安装IIS。我该怎么办? 最
我们有一个 mongoosejs 客户端,它查询大型 mongodb 集合(大约 1000 万条记录)并通过管道传输到转换流。当我们运行此代码时, Node 进程占用 100% CPU 并且变得繁忙,
我是一名优秀的程序员,十分优秀!