定时触发器“挂起”

问题描述 投票:0回答:1

我的脚本中的 Google Apps 脚本定时触发器存在问题。

我有一个处理和匹配大量数据(43k 行)的主函数,因此我使用定时触发器来停止进程并从中断处重新启动。它将数据保存在属性服务中。

该函数调用我编写的设置触发函数(设置一秒触发)并立即停止。

这是我调用的触发函数

// Function to set a timmed trigger to start the main function again. 
function setrebootTrigger() {
    //manageTriggers(); disabled to see if this speeds things up FYI it didnt :/

    //Set a time-based trigger to continue processing after 1 seconds
    ScriptApp.newTrigger('organizeData')
        .timeBased()
        .after(1000)
        .create();

    // logToSheet("Freeze process trigger created."); disabled currently not needed for debugging
 }

这是整个脚本的链接

https://github.com/caveman1514/RT-YT-match-script/blob/main/Rt%20-%20YT%20Script%20V5.txt

无论我将触发器设置为 1 秒、5 秒、20 秒、1/2 秒多长时间,都需要大约 1-3 分钟才能再次激活主要功能。我设置了日志来查看它在从停止处提取数据时是否停止,甚至在每次主函数启动后以及在设置触发器后它自行停止之前都有一个日志,这两个日志有 1-3最小间隔,因此这与触发器本身有关。

如果您想查看的话,这里有一些日志

15/05/2024 11:58:13 AM: Batch update completed.
15/05/2024 11:58:15 AM: Properties updated. Ending current iteration of loop.
**15/05/2024 11:58:16 AM: freeze process trigger set, freezing process to avoid timeout
15/05/2024 11:59:30 AM: main function started!**
15/05/2024 11:59:31 AM: Set YouTube batch size to 50 and RoosterTeeth batch size to 1500.
15/05/2024 11:59:31 AM: Set desired show name: On The Spot
15/05/2024 11:59:32 AM: Processing new batch of YouTube rows from index 100 to 150.

另一组日志

15/05/2024 11:53:38 AM: Batch update completed.
15/05/2024 11:53:39 AM: Properties updated. Ending current iteration of loop.
**15/05/2024 11:53:40 AM: freeze process trigger set, freezing process to avoid timeout
15/05/2024 11:55:14 AM: main function started!**
15/05/2024 11:55:15 AM: Set YouTube batch size to 50 and RoosterTeeth batch size to 1500.
15/05/2024 11:55:16 AM: Set desired show name: On The Spot
15/05/2024 11:55:16 AM: Processing new batch of YouTube rows from index 50 to 100.

正如你所看到的,它确实不一致,当我拉起触发器选项卡时,我可以看到它只是坐在那里什么都不做

javascript google-apps-script triggers
1个回答
0
投票

来自 https://developers.google.com/apps-script/reference/script/clock-trigger-builder#after(Integer)

之后(持续时间毫秒)
指定触发器运行的当前时间之后的最短持续时间(以毫秒为单位)。实际持续时间可能会有所不同,但不会少于您指定的最短时间。

考虑到上述情况,您所看到的行为不存在任何故障。

© www.soinside.com 2019 - 2024. All rights reserved.