更改Google电子表格应用程序脚本触发器的排队时间

更改Google电子表格应用程序脚本触发器的排队时间

问题描述:

当我为与Google电子表格关联的Google应用程序脚本创建每日基于时间的触发器时,系统会提示我选择一小时长窗口内的执行时间,似乎cron包装程序在该小时长的时间间隔内随机分配一个确切的执行时间。更改Google电子表格应用程序脚本触发器的排队时间

由于我的应用程序的特定用例有几个数据依赖关系,这些数据依赖关系可能无法在小时前完成,所以我不得不将它分成几个阶段,每个阶段都有一个单独的触发器,以确保所需的数据将可用。

例如,最初为我的脚本分配的触发时间为上午6:03,但通常在上午5:57到达的数据有时直到上午6:10才到达,并且脚本没有任何可处理的内容天。作为一个钝器解决方案,我删除了6-7AM触发器,并重新创建它以在7-8AM时隙执行,以确保所需的数据可用。这要求脚本的第二阶段必须移至8-9AM,导致脚本结果可能会延迟2-3小时。

为了改善这种情况,我正在考虑整合两个脚本处理阶段并创建一个更准确的脚本执行触发时间,比如6:30 AM是安全的。有谁知道:

  1. 是否有可能,除了通过观察每天的处理,发现已分配的确切触发执行时间,并
  2. 如果随机分配的,可脚本触发器被创建和删除,直到一个可接受的精确执行时间被获得?

在此先感谢您提供的任何指导。

+1

我相信距离最近的是[(+/- 15分钟)](https://developers.google.com/apps-script/reference/script/clock-trigger-builder)。我会在6点30分和7点设置两个触发器,或者像你提到的那样将它们结合起来。如果您真的需要在15分钟窗口之前运行流程,可以在早上6点触发一个[分钟触发器](https://developers.google.com/apps-script/reference/script/clock-trigger -builder#everyMinutes(Integer))来检查数据是否到达,如果它确实运行了你的进程,那么就有分钟触发器自我删除。 –

如果准确性至关重要,您可以放弃使用应用程序脚本触发器并改用第三方工具。我想推荐使用cron-job.org。此服务可以创建cron作业,使您对指定的url端点发出POST请求,并且您可以将时间精确到一分钟。要将其与Apps Script结合使用,请执行doPost()来处理发布的请求并将您的脚本部署为Web APP。然后,您使用该服务创建一个cron作业,并将该应用程序的URL作为端点传递给它。

cron作业将在预定时间触发,您可以在doPost()内部执行任何必需的操作以响应传入的POST请求。

非常感谢您随意的部分和Dimu设计的指导。基于实验,这里有答案,我的问题:

  1. 是否有可能比通过观察日处理,发现已分配的确切触发执行时间等? 答案:除了观察在请求的小时窗口内分配的随机触发时间以外,没有办法。
  2. 如果随机分配,脚本触发器是否可以创建和删除,直到获得可接受的精确执行时间? 答:是的。我通过观察触发器的执行时间(通过电子邮件消息时间戳)以及删除,重新创建并观察随机分配的触发器执行时间来调整脚本的分配执行时间,直到在请求的小时窗口内得到可接受的分钟为止。