更改Google电子表格应用脚本触发器

时间:2017-09-03 15:50:10

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

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

由于我的应用程序的特定用例有几个数据依赖性,可能无法在一小时内完成,我被迫将我的应用程序划分为几个阶段,每个阶段都会延迟一个小时,以确保所需的数据将可用。

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

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

  1. 除了通过观察日常处理之外,是否有可能发现已分配的确切触发执行时间,
  2. 如果随机分配,是否可以创建和删除脚本触发器,直到获得可接受的精确执行时间?
  3. 提前感谢您提供的任何指导。

2 个答案:

答案 0 :(得分:1)

如果准确性至关重要,您可以完全放弃使用应用脚本触发器,而是利用第三方工具。

我建议使用cron-job.org。此服务可以创建对您指定的URL端点发出POST请求的cron作业,并且您可以将时间精确到一分钟。要将其与Apps脚本一起使用,请实施doPost()来处理发布请求并将脚本部署为Web APP。然后,您使用该服务创建一个cron作业,并将Web应用程序的URL作为端点传递给它。

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

答案 1 :(得分:0)

感谢随机部分和Dimu Designs的指导。根据实验,以下是我的问题的答案:

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