我有一个实时Node应用程序,我计划在谷歌云上运行。它是实时的,因为服务器必须始终与Firebase同步。例如,处理搜索功能等。所以我会有这个不断滴答作响的东西,它只是坐着等待事件发生。
应用程序的核心部分之一是可以创建Events (日期和时间)的概念。
我需要的,本质上是一个黑盒。我想说“12月23日晚上8点告诉我这件事”。有点像一个Mega long回调,或者我可以订阅的东西。
我知道cron是可用的,但这并不是我想要的。在实时应用程序中,cron没有实际意义,感觉也不太对劲。我的应用程序应该适应事件。我不希望机枪全天候每分钟开一次枪,特别是在系统没有任何变化的情况下。我需要抛弃基于时间的轮询的想法。
我相信我真正需要的是一个看起来像Cron的Scheduler,但是更“实时”。
这让我想到了Microsoft Azure which has a Scheduler
我想这可能正是我需要的。如果是这样的话,有没有我可能在文档中遗漏的Google Cloud等价物?
发布于 2017-03-23 22:52:20
GAE灵活环境提供类似的cron服务。
来自Scheduling Jobs with cron.yaml
App Engine Cron Service允许您配置定期计划的任务,这些任务在定义的时间或定期间隔运行。这些任务通常称为cron作业。这些cron作业由App Engine Cron服务自动触发。例如,您可以使用它每天发送一封报告电子邮件,每10分钟更新一些缓存数据,或者每小时更新一些摘要信息。
cron作业将在一天中的给定时间使用HTTP GET请求调用URL。cron调用的HTTP请求最长可运行60分钟,但为subject to the same limits as other HTTP requests。
以下是一个示例cron.yaml文件:
cron:- description:每日摘要作业url: /task/摘要计划:每24小时-描述:星期一早上邮寄url: /mail/每周计划:每周一09:00时区:澳大利亚/新南威尔士州-描述:新的每日摘要作业url: /task/摘要计划:每24小时目标: beta
因此,您所需要做的就是为所需的任何操作配置此类cron作业(触发器),并为执行这些操作的各个URL添加处理程序。
以下是计划的示例:
每12小时每5分钟10:00至14:00每天00:00每周一09:00第二、三、三、
注意:目前还不能以编程方式调度cron作业,但是有一个feature request用于它。
问题中提到的特定示例的cron.yaml:
cron:
- description: trigger the Dec 23rd event
url: /events/12.23
schedule: 23 of dec 20:00要部署cron作业:
gcloud app deploy cron.yaml发布于 2017-10-12 18:16:45
在您的案例中,Google Cloud Functions --以及更一般的服务/无服务器功能--似乎最适合运行事件驱动的代码片段。在GCP上,它主要包括将nodejs模块上传到存储桶,并将逻辑嵌入到导出的函数中。
在docs中:
/**
* Cloud Function.
*
* @param {object} event The Cloud Functions event.
* @param {function} callback The callback function.
*/
exports.helloWorld = function helloWorld (event, callback) {
console.log(`My Cloud Function: ${event.data.message}`);
callback();
};你可以阅读更多关于here的内容。
https://stackoverflow.com/questions/42978570
复制相似问题