3

我有一个计划的云功能(使用Google 的新解决方案),它打算在每周一上午 12:00 运行。

export const updateHighScores = functions.pubsub.schedule('0 0 * * 1').onRun((context) => {

    // (code)
    // console.log(‘This code will run every Monday at 12:00 AM UTC’);

});

功能仪表板

我期待它在世界标准时间上午 12:00 运行;然而,当午夜 UTC 到来时,什么也没有发生。所以我上床睡觉,为我预定的云功能没有工作感到难过,但决心继续努力。

但是第二天我检查了日志,它似乎确实有效,但它是在太平洋时间上午 12:00 运行的。

功能日志

  • Cloud Function 的区域设置为 us-central1,但我认为这不会影响这一点。
  • 我的计算机时区设置为太平洋时间,我位于中部时间,但我认为两者都不重要。
  • 我还在 Firebase 和 Google Cloud Platform 中四处点击,看看我是否有影响它的设置,但没有找到任何东西。

知道为什么它在太平洋时间午夜而不是 UTC 运行吗?

(我将通过更改所有这些变量并观察它如何影响预定的云功能来进行大量猜测和检查,但如果有人知道他们的头脑,我不妨在这里问一下。谢谢! )

4

2 回答 2

11

计划函数在由Google Cloud Scheduler计划的情况下触发。使用 Firebase CLI 进行部署时,会自动为您创建 Cloud Scheduler 中的条目。如果您单击云控制台以显示您的日程安排,您会看到时区设置为“美国/洛杉矶”,即 PST。

时区是使用函数构建器 API 设置的。您可以在文档中阅读相关内容。

于 2019-05-20T15:09:48.563 回答
2

我做这样的事情

exports.scheduledFunction = functions.pubsub
.schedule("0 4 * * *")
.timeZone("Asia/Baku")
.onRun((context) => {
    groupCustomers.set({});
    tables.set({});
    calledCustomers.set({});
    groups.set({
        A: { name: "Altering", activeOnTablet: false },
        
    });

    return null;
});
于 2020-10-31T10:36:29.060 回答