Javascript Firebase的云功能是否按时触发?
我正在寻找为Firebase安排云功能的方法,或者换句话说,在特定时间触发它们。更新2019-04-18 现在有一种非常简单的方法可以通过Firebase在云函数上部署计划代码 您可以使用简单的文本语法:Javascript Firebase的云功能是否按时触发?,javascript,firebase,google-cloud-platform,google-cloud-functions,Javascript,Firebase,Google Cloud Platform,Google Cloud Functions,我正在寻找为Firebase安排云功能的方法,或者换句话说,在特定时间触发它们。更新2019-04-18 现在有一种非常简单的方法可以通过Firebase在云函数上部署计划代码 您可以使用简单的文本语法: export scheduledFunctionPlainEnglish = functions.pubsub.schedule('every 5 minutes').onRun((context) => { console.log('This will be run every
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
或更灵活的cron表格式:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
要了解更多信息,请参阅:
- 介绍该功能的博客文章
- 这个
还没有内置的runat/cron类型触发器 目前,最好的选择是使用外部服务定期触发HTTP函数。有关更多信息,请参见中的此示例。或者使用最近推出的Google Cloud Scheduler通过PubSub或HTTPS触发云功能: 我还强烈建议您阅读Firebase博客上的这篇文章:以及这段视频:
最后一个链接用于触发云功能,并适用于免费计划中的项目。请注意,这允许任何人在未经授权的情况下调用您的函数,因此您可能希望在代码中包含一些滥用保护机制。更新2019-04-18 现在有一种非常简单的方法可以通过Firebase在云函数上部署计划代码 您可以使用简单的文本语法:
export scheduledFunctionPlainEnglish =
functions.pubsub.schedule('every 5 minutes').onRun((context) => {
console.log('This will be run every 5 minutes!');
})
或更灵活的cron表格式:
export scheduledFunctionCrontab =
functions.pubsub.schedule('5 11 * * *').onRun((context) => {
console.log('This will be run every day at 11:05 AM UTC!');
});
要了解更多信息,请参阅:
- 介绍该功能的博客文章
- 这个
还没有内置的runat/cron类型触发器 目前,最好的选择是使用外部服务定期触发HTTP函数。有关更多信息,请参见中的此示例。或者使用最近推出的Google Cloud Scheduler通过PubSub或HTTPS触发云功能: 我还强烈建议您阅读Firebase博客上的这篇文章:以及这段视频:
最后一个链接用于触发云功能,并适用于免费计划中的项目。请注意,这允许任何人在未经授权的情况下调用您的函数,因此您可能希望在代码本身中包含一些滥用保护机制。您可以做的是启动一个AppEngine实例,该实例由cron job触发并发送到PubSub。我专门为此写了一篇博文,你可能想看看:
您可以做的是启动一个AppEngine实例,该实例由cron job触发并发送到PubSub。我专门为此写了一篇博文,你可能想看看:
首先需要注意的是,您的函数将执行的默认时区是美国/洛杉矶。如果你想在不同的时区触发你的函数,你可以找到一个时区列表 NB:这里有一个有用的网站可以帮助您(我发现它非常有用) 以下是您的做法: (假设您想使用非洲/约翰内斯堡作为您的时区) 否则,如果您希望坚持默认设置:
export const executeFunction = functions.pubsub.schedule("10 23 * * *")
.onRun(() => {
console.log("successfully executed at 23:10 Los Angeles Time!!");
});
首先需要注意的是,您的函数将执行的默认时区是美国/洛杉矶。如果你想在不同的时区触发你的函数,你可以找到一个时区列表 NB:这里有一个有用的网站可以帮助您(我发现它非常有用) 以下是您的做法: (假设您想使用非洲/约翰内斯堡作为您的时区) 否则,如果您希望坚持默认设置:
export const executeFunction = functions.pubsub.schedule("10 23 * * *")
.onRun(() => {
console.log("successfully executed at 23:10 Los Angeles Time!!");
});
对于每小时触发一次的cron作业,每月的估计成本是多少?@EhteshamHasan看起来可能是免费的:。目前每天免费提供28个实例小时;此外,还有Google Compute Engine的f1 micro实例w/Linux运行crons for free atm。对于每小时触发一次的cron作业,每月的估计成本是多少?@EhteshamHasan看起来可能是免费的:。目前每天免费提供28个实例小时;此外,谷歌计算引擎的f1微实例w/Linux运行免费atm的cron。这一点没有改变。包括Jen在博客文章中提到的
cron job.org
是免费使用的。Jen的视频被标记为不推荐使用。那么还有其他方法吗?这种方法在今天和视频(和博客文章)制作时一样有效。语法略有改变,但我不认为这个具体案例会受到影响。如果你在这项工作中遇到困难,可以提出一个问题,说明你已经做了什么。哇,他们终于实现了一种简单的方法!最后感谢云调度器页面的更新:每个云调度器作业每月的成本为$0.10(USD)
,假设“作业”并不意味着每次调度事件启动,而是每个计时器的成本?i、 每分钟运行一次的作业只需花费0.10美元?(不包括它调用的任何云函数)。这方面没有任何变化。包括Jen在博客文章中提到的cron job.org
是免费使用的。Jen的视频被标记为不推荐使用。那么,有没有其他的方法来解决这个问题呢