首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GAE Golang -如何将后端配置为每X秒执行一次任务?

GAE Golang -如何将后端配置为每X秒执行一次任务?
EN

Stack Overflow用户
提问于 2014-02-13 18:25:28
回答 1查看 356关注 0票数 1

在我的Google App Engine Go应用程序中,我需要每5-10秒执行一次任务。我知道使用标准Cron是行不通的,因为那样只能每分钟调度一次任务。类似地,在这样的线程中睡眠可能不是最好的选择。据我所知,我需要使用一些后端实例来执行这些任务。

如何配置我的应用程序,以及时和资源高效的方式处理这些任务?我是不是每天24小时运行后台,直到我需要做一些事情,还是有更有效的方法来执行一项任务,然后安排另一项任务在5-10秒内运行?

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 19:42:20

这个问题突出了处理效率和服务质量(计时准确性)之间的紧张关系。最有效的方法是使用延迟或ETA选项的Task Queue (推送队列样式),但API没有提供关于准确性的服务级别协议。最精确的方法是你所描述的24/7后端,但它的开销要高得多--而且AppEngine不能保证它的正常运行时间。

我对基于Java的推送队列的经验是,超过90%的任务在计划时间的2秒内执行,而不到1%的任务开始时间延迟超过10秒。任何任务似乎都不会提前运行。

编辑-正如Zig从经验中指出的那样,AppEngine可能会在任何时候关闭后端,并且不提供自动重启它的方法。因此,后端的敏捷性被不可预测的停机时间所破坏。

总而言之,任务队列是高效和可靠的,但与后端相比不太及时,后端成本更高,可靠性更差。在大多数情况下,使用任务队列而不是后端。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21751437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档