【问题标题】:Google Apps Script trigger to run every 2 months is not working每 2 个月运行一次的 Google Apps 脚本触发器不起作用
【发布时间】:2014-10-02 13:44:44
【问题描述】:

我为我的企业 Google Apps 帐户 (script.google.com) 创建了一个脚本,要求所有用户更改密码。我已进入 Resources > Current Project's Triggers 下的 Google Script 设置,并将脚本设置为使用设置为“2”的 Month 计时器作为时间驱动事件运行。相反,该脚本每 30 天运行一次,而不是每 60 天运行一次。有没有人对 script.google.com 中的项目触发器有任何经验?我试图打电话给谷歌,以了解为什么他们的内置触发器没有按预期运行,他们只是告诉我他们不支持 script.google.com。我需要这个脚本每 60 天执行一次,似乎将项目触发器设置为每 2 个月运行一次应该可以。没有。

感谢任何帮助。

谢谢!

【问题讨论】:

  • 您是使用脚本还是从编辑器手动创建触发器?
  • 如果你不能让它每 60 天工作一次并且它只每 30 天触发一次,那么你可以使用 PropertiesService (developers.google.com/apps-script/reference/properties/…) 来设置一个计数器,例如当脚本运行时第一次在 30 天后计数器 == 0 并且它由您的脚本递增为 1,当触发器在另一个 30 天计数器为 2 后再次运行并且您的脚本执行并将计数器重置为零时。不理想,但一种解决方法
  • 我正在通过在 script.google.com 的当前项目中选择“资源 > 当前项目的触发器”来创建触发器。而不是在实际脚本本身中。正因为如此,我觉得 Google 应该能够处理他们自己的预定义触发选项,但似乎他们不能。至少不适合我……

标签: google-apps-script google-apps google-admin-sdk


【解决方案1】:

我相信我明白这里的问题所在。 Google Apps 脚本上的“月份”触发器实际上是指每月在 [每月的某天] 运行,而不是每 X 个月运行一次

您可以看到“每月”触发器为您提供了最多 31 天的时间来选择触发器,这表明如果您选择“15”,它将在每个月的 15 日触发。我想这可能会被误解为“每 15 个月运行一次”。

这里一个可能的解决方案是让它在每个月的 31 号运行,因为它应该跳过天数少于 31 天的月份。罗马历的拆分方式通常 这意味着它将每两个月运行一次,但有一些例外情况(7 月和 8 月是背靠背的,并且都有 31 天,12 月和 1 月也是如此)。

【讨论】:

  • 啊!你说的对!现在这完全可以解释为什么我会看到我遇到的问题。除了您描述的可能解决方案之外,似乎没有办法安排脚本每 60 天运行一次。 Google 应该真正实施密码有效期限制设置。默认情况下,没有指定密码生命周期规则的地方,这就是我必须首先使用脚本的原因。非常感谢您的澄清!
【解决方案2】:

要获得双月触发器,您可以将触发器设置为每月,然后将代码包装在这样的条件中。

触发器将在每个月的指定日期触发,但条件内的代码将仅每 2 个月运行一次。

const date = new Date;   
if (date.getMonth() % 2 == 0) {
  // code to execute   
};

【讨论】:

    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    相关资源
    最近更新 更多