有一个Twilio号码查询服务,可将Google电子表格用于查询服务。但是问题是Google只允许几分钟运行循环,并且会抛出超出执行时间的最大错误。
代码如下:
function lookup(phoneNumber) {
var lookupUrl = "https://lookups.twilio.com/v1/PhoneNumbers/" + phoneNumber + "?Type=carrier";
var options = {
"method" : "get"
};
options.headers = {
"Authorization" : "Basic " + Utilities.base64Encode("ACCOUNTSID:AUTHTOKEN")
};
var response = UrlFetchApp.fetch(lookupUrl, options);
var data = JSON.parse(response);
Logger.log(data);
return data;
}
function lookupAll() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = sheet.getLastRow() - 1;
var dataRange = sheet.getRange(startRow, 1, numRows);
var phoneNumbers = dataRange.getValues();
for (var i in phoneNumbers) {
var phoneNumber = phoneNumbers[i];
var spreadsheetRow = startRow + Number(i);
sheet.getRange(spreadsheetRow, 2, spreadsheetRow, 6).setValue("");
if (phoneNumber != "") {
try {
data = lookup(phoneNumber);
if (data['status'] == 404) {
sheet.getRange(spreadsheetRow, 2).setValue("not found");
} else {
sheet.getRange(spreadsheetRow, 2).setValue("found");
sheet.getRange(spreadsheetRow, 3).setValue(data['carrier']['type']);
sheet.getRange(spreadsheetRow, 4).setValue(data['carrier']['name']);
sheet.getRange(spreadsheetRow, 5).setValue(data['country_code']);
sheet.getRange(spreadsheetRow, 6).setValue(data['national_format']);
}
} catch(err) {
Logger.log(err);
sheet.getRange(spreadsheetRow, 2).setValue('lookup error');
}
}
}
}
function myFunction() {
lookupAll();
}
我使用lookupAll
函数,一次可以查找250个数字(约6分钟)。
现在,我需要一口气查看2500多个数字。我该怎么办?