Javascript Google应用程序脚本超出最大执行时间问题

Javascript Google应用程序脚本超出最大执行时间问题,javascript,for-loop,google-apps-script,optimization,google-sheets,Javascript,For Loop,Google Apps Script,Optimization,Google Sheets,我构建自己的应用程序脚本代码,以从转储文件更新日期。 我大部分时间都面临“超过最大执行时间”的问题。但代码运行良好。它从图纸has(29K行)导入并更新数据(16K行)的状态 您能否支持使代码更快/工作正常 函数更新\u main\u master(){ var xngSs=SpreadsheetApp.openById('XXXX'); var xngSh=xngSs.getSheetByName('XNG Clean Data'); var MasterSs=SpreadsheetApp.o

我构建自己的应用程序脚本代码,以从转储文件更新日期。 我大部分时间都面临“超过最大执行时间”的问题。但代码运行良好。它从图纸has(29K行)导入并更新数据(16K行)的状态 您能否支持使代码更快/工作正常

函数更新\u main\u master(){
var xngSs=SpreadsheetApp.openById('XXXX');
var xngSh=xngSs.getSheetByName('XNG Clean Data');
var MasterSs=SpreadsheetApp.openById('YYY');
var MasterSh=MasterSs.getSheetByName(“主工作表”);
var MasterData=MasterSh.getDataRange().getValues();
var xngData=xngSh.getDataRange().getValues();
//clearFilter()
if(MasterSh.getFilter()!=null){
MasterSh.getFilter().remove();
}
xngData.拼接(0,1);
主数据拼接(0,1);
var OrderNumberMasterSh=[];
var pathnamestash=[];
对于(变量i=0;i

我构建自己的应用程序脚本代码,以从转储文件更新日期。我大部分时间都面临“超过最大执行时间”的问题。但代码运行良好。它从sheet has(29 K行)导入并更新数据(16.5 K行)的状态。您是否可以支持使代码更快/工作正常?

您正在达到执行时间限制,大多数帐户的执行时间为6分钟。为了避免这种情况,您可以通过设置一个基于时间的触发器将循环分成不同的执行,该触发器将在前一个执行完成后触发每个后续执行。您必须执行以下操作:

  • 检查每次迭代后的执行时间。如果此时间接近时间限制,请停止执行。您可以使用

  • 在函数末尾创建以下基于时间的触发器:。由于这一点,您可以在指定的毫秒数之后运行指定的任何函数。每次执行后,将创建一个触发器来触发下一个触发器

  • 由于要拆分循环,因此必须将循环计数器(
    x
    )存储在某个位置(可以在每次执行结束时使用,也可以将其写入电子表格)并在下一次执行开始时检索,以便在后续执行中,脚本知道在何处恢复循环。例如,如果您不知道如何存储和检索脚本属性,请参见

  • 现在,您正在将所有需要的数据存储在2D数组
    MasterData
    ,并在代码末尾使用
    设置值
    将这些数据写入电子表格。因为这个动作只发生在