【问题标题】:Trigger should be activated every 5 minutes, but it doesn't happen触发器应该每 5 分钟激活一次,但它不会发生
【发布时间】:2019-12-04 15:10:18
【问题描述】:

激活顺序甚至不遵循时间逻辑,如下所示:

每 5 分钟启用一次。

我使用的脚本很简单:

function ProjetoNovasLigas() {
  var ss = SpreadsheetApp.getActive();
  ss.getRange('Página1!A2').setFormula('=TEXT(NOW(),"yyyy/mm/dd hh:mm")');
  ss.getRange('Página1!A2').copyTo(ss.getRange('Página1!A2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!K2:M').copyTo(ss.getRange('Página1!O2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!D2:D').copyTo(ss.getRange('Página1!E2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!K2:M').copyTo(ss.getRange('Página1!O2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!D2:D').copyTo(ss.getRange('Página1!E2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!K2:M').copyTo(ss.getRange('Página1!O2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!D2:D').copyTo(ss.getRange('Página1!E2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!K2:M').copyTo(ss.getRange('Página1!O2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!D2:D').copyTo(ss.getRange('Página1!E2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!K2:M').copyTo(ss.getRange('Página1!O2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!D2:D').copyTo(ss.getRange('Página1!E2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  if (ss.getSheetByName('Página1').getRange("C2").getValues()[0][0]=="Limpar"){
    ss.getRange('Página1!E2:E1000000').clear({contentsOnly: true, skipFilteredRows: true});
  };
  ss.getRange('Página1!V2:V1000000').clear({contentsOnly: true, skipFilteredRows: true});
  ss.getRange('Página1!V2').setFormula('=IFERROR(FILTER(ARRAY_CONSTRAIN(UNIQUE(IFERROR(FILTER(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),ISNA(MATCH(RIGHT(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")),LEN(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")))-44),Sheet2!D:D, 0))))),300,1),ISNA(MATCH(ARRAY_CONSTRAIN(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),300,1), X:X, 0)))\n)');
  ss.getRange('Página1!V2:V').copyTo(ss.getRange('Página1!V2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!U2:U').copyTo(ss.getRange('Página1!S2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!W2:W').copyTo(ss.getRange('Página1!X2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!V2:V1000000').clear({contentsOnly: true, skipFilteredRows: true});
  ss.getRange('Página1!V2').setFormula('=IFERROR(FILTER(ARRAY_CONSTRAIN(UNIQUE(IFERROR(FILTER(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),ISNA(MATCH(RIGHT(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")),LEN(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")))-44),Sheet2!D:D, 0))))),300,1),ISNA(MATCH(ARRAY_CONSTRAIN(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),300,1), X:X, 0)))\n)');
  ss.getRange('Página1!V2:V').copyTo(ss.getRange('Página1!V2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!U2:U').copyTo(ss.getRange('Página1!S2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!W2:W').copyTo(ss.getRange('Página1!X2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!V2:V1000000').clear({contentsOnly: true, skipFilteredRows: true});
  ss.getRange('Página1!V2').setFormula('=IFERROR(FILTER(ARRAY_CONSTRAIN(UNIQUE(IFERROR(FILTER(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),ISNA(MATCH(RIGHT(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")),LEN(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")))-44),Sheet2!D:D, 0))))),300,1),ISNA(MATCH(ARRAY_CONSTRAIN(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),300,1), X:X, 0)))\n)');
  ss.getRange('Página1!V2:V').copyTo(ss.getRange('Página1!V2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!U2:U').copyTo(ss.getRange('Página1!S2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!W2:W').copyTo(ss.getRange('Página1!X2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!V2:V1000000').clear({contentsOnly: true, skipFilteredRows: true});
  ss.getRange('Página1!V2').setFormula('=IFERROR(FILTER(ARRAY_CONSTRAIN(UNIQUE(IFERROR(FILTER(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),ISNA(MATCH(RIGHT(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")),LEN(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")))-44),Sheet2!D:D, 0))))),300,1),ISNA(MATCH(ARRAY_CONSTRAIN(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),300,1), X:X, 0)))\n)');
  ss.getRange('Página1!V2:V').copyTo(ss.getRange('Página1!V2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!U2:U').copyTo(ss.getRange('Página1!S2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!W2:W').copyTo(ss.getRange('Página1!X2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!V2:V1000000').clear({contentsOnly: true, skipFilteredRows: true});
  ss.getRange('Página1!V2').setFormula('=IFERROR(FILTER(ARRAY_CONSTRAIN(UNIQUE(IFERROR(FILTER(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),ISNA(MATCH(RIGHT(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")),LEN(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")))-44),Sheet2!D:D, 0))))),300,1),ISNA(MATCH(ARRAY_CONSTRAIN(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),300,1), X:X, 0)))\n)');
  ss.getRange('Página1!V2:V').copyTo(ss.getRange('Página1!V2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!U2:U').copyTo(ss.getRange('Página1!S2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!W2:W').copyTo(ss.getRange('Página1!X2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!V2:V1000000').clear({contentsOnly: true, skipFilteredRows: true});
  ss.getRange('Página1!V2').setFormula('=IFERROR(FILTER(ARRAY_CONSTRAIN(UNIQUE(IFERROR(FILTER(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),ISNA(MATCH(RIGHT(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")),LEN(REGEXEXTRACT(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),REGEXREPLACE(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),"(https?:\\/\\/([\\w.-]+\\/){7})","($1)")))-44),Sheet2!D:D, 0))))),300,1),ISNA(MATCH(ARRAY_CONSTRAIN(FILTER(Q2:Q,ISNA(MATCH(Q2:Q, S2:S, 0)),VALUE(TEXT(O2:O&" "&P2:P,"yyyy/mm/dd hh:mm"))<=VALUE(TEXT(A2,"yyyy/mm/dd hh:mm"))+"1:00"),300,1), X:X, 0)))\n)');
  ss.getRange('Página1!V2:V').copyTo(ss.getRange('Página1!V2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!U2:U').copyTo(ss.getRange('Página1!S2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  ss.getRange('Página1!W2:W').copyTo(ss.getRange('Página1!X2'), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  if (ss.getSheetByName('Página1').getRange("A4").getValues()[0][0]=="Limpar"){
    ss.getRange('Página1!X2:X1000000').clear({contentsOnly: true, skipFilteredRows: true});
  };
}

最终细节: 我的帐户什么都没有了,它只是为这个电子表格和这个脚本创建的。所以它没有超出任何限制,我有另一个帐户,其中包含几个和几个电子表格,触发时间为 5 分钟,并且一切正常。但是这个专门针对这个帐户的不能正常工作。

我使用的一些脚本非常复杂和繁重,而且都 100% 运行良好。我觉得这很奇怪,对正在发生的事情没有合乎逻辑的解释。至少我无法从我所知道的情况中找出错误。

不知道有什么办法可以解决这个问题。

【问题讨论】:

  • 那么第一张截图是触发的实际时间间隔?手动运行脚本需要多长时间运行还是有错误?
  • @JamesD 当我手动运行时,它运行良好。它最多可以立即完成:40 秒。照片显示拍摄的时间。他们每个人之间应该有 5 分钟的时间限制,但事实并非如此。

标签: google-apps-script google-sheets google-sheets-api triggers


【解决方案1】:

触发器的使用受限于quotas

所以,例如对于消费者帐户,每天触发总运行时间的最大限制为 90 分钟。

如果您每 5 分钟运行一次触发器,即每天 24 x 12 次,并且平均执行时间为 30 秒 - 总运行时间为 24 x 12 x 30 秒/天 = 144 分钟/天 > 90 分钟/天

【讨论】:

  • 现在我明白了……问题不在于拍摄次数,而在于每次拍摄所用的时间。为了不超过限制,它会自动划分我一整天的时间,以免被阻塞。让它在镜头之间产生更大的间隙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多