【问题标题】:Cron job not working in firebase functionsCron 作业在 firebase 函数中不起作用
【发布时间】:2019-03-09 18:47:18
【问题描述】:

我需要在每天早上 6 点和 9 点执行以下 cron 作业。

cron.schedule('00 00 6,9 * * 0-6', function() {
alertAllMembersWithAppointments();//executed everyday at 6 and 9AM});

当我这样设置时间时

cron.schedule('* * * * * *', function() {
    alertAllMembersWithAppointments();//executed everyday at 6 and 9AM
});

它工作正常并且每分钟执行一次。请帮助设置时间,因为在我看来 node 和 linux 的 cron 设置完全不同。我正在使用以下要求const cron = require("node-cron");

【问题讨论】:

  • 您不能在 firebase 函数中运行 cron 作业。云函数执行它们的代码并关闭。在这个例子中,他们将初始化 cron 类设置值然后销毁自己。
  • 查看其他一些stackoverflow问题以获取更多信息:stackoverflow.com/questions/35737708/…
  • 为什么我设置为每分钟执行一次就可以了
  • 可能是因为云函数的默认超时时间是 60 秒,所以它会停留足够长的时间来执行?
  • 似乎没有可食用的解决方案,因为它是 firebase,我必须将该方法放在 https 函数中,然后尝试在 linux crontab 上执行它。我相信它会起作用的。

标签: node.js firebase google-cloud-functions node-cron


【解决方案1】:

@sketchthat's comment isspot on with the logic here:每分钟运行一次 cron-job,很可能将其保持在函数超时之下。

但是重新触发这样的函数是不可靠的,除非你注意返回正确的承诺。如果你做对了,它就会工作,你最终会拥有永远活跃的云功能。那时,在某个地方找到便宜的节点主机会更便宜。

对于可靠的基于时间的函数,您需要依赖外部触发器。见Cloud Functions for Firebase trigger on time?

【讨论】:

    猜你喜欢
    • 2015-02-23
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    相关资源
    最近更新 更多