使用谷歌云平台延迟工作解决方案

时间:2016-08-22 03:11:44

标签: google-cloud-messaging google-cloud-platform

我的应用程序从google cloud pubsub中获取排队的邮件并处理该任务。工作者应用程序也托管了谷歌应用程序引擎(Node.js)。由于第三方应用程序施加的速率限制,工作者应用程序陷入困境。是否有任何现成的解决方案在谷歌云平台内运行延迟工作?

谢谢!

2 个答案:

答案 0 :(得分:1)

只是想回顾并更新我最终做的事情。使用谷歌pubsub,拉订阅,没有自动确认。使用属性计时器发送消息,一次拉出一个或多少消息,检查是否到达计时器。如果达到,请回复该消息。否则,只需忽略订户侧的消息处理。通过不承认包含未来时间的消息,pubsub将尝试在您喜欢的任何时间间隔内反复传递相同的消息。这很完美,不需要任何其他解决方案,如kue.js等。

答案 1 :(得分:0)

您可以尝试使用Google Cloud Platform中提供的Go语言的The delay package

如给定文档中所述,包延迟提供了一种使用taskqueue API在用户请求范围之外执行代码的方法。

要声明可以稍后执行的函数,请在顶级赋值上下文中调用Func,向其传递任意字符串键和第一个参数类型为context.Context的函数。

var laterFunc = delay.Func("key", myFunc)

也可以使用函数文字。

var laterFunc = delay.Func("key", func(c context.Context, x string) {
// ...
})

有关Go延迟包的完整内容列表,请浏览The delay package