问题:如何创建轻量级的按需实例,预先配置w / Java8和我的代码,pull来自任务队列的任务,执行内存密集型任务,然后自行关闭。 (按需,高内存,中等CPU,单任务执行器)
历史:我在Java中成功使用Google App Engine Task Queue来实现" bursty"处理相对罕见的事件 - 也许每周一次有人提交一个表单,表单创建~10个任务,系统会咀嚼一些内存和CPU周期思考任务几分钟,保存结果,网页会投票后端完成。它在Google App Engine中运行良好 - 自动缩放将删除所有空闲实例,任务队列将处理完成处理,我确保不通过设置max-concurrent-requests = 1来重载事物,并且生命是好!
但是后来我的任务对于实例类来说太过密集了内存:F4_1G我喜欢选择内存更多的东西,但这不是一个选择。所以我需要弄明白。
我认为我最好的选择是使用API com.google.api.services.compute.model.Instance启动通用实例,但要停在那里。我很害怕任务队列构建的容易程度,我讨厌为了获得更高的内存实例而迷失在杂草中 - 我不需要群集,而且不需要任何可靠性!
我发现了一些类似的问题,但没有相应的答案:
答案 0 :(得分:2)
我想了解一下GAE模块。这些可以设置为使用基本缩放,以便按需创建实例,然后在一段时间后过期,由您在appengine-web.xml中使用以下内容设置:
<basic-scaling>
<max-instances>2</max-instances>
<idle-timeout>5m</idle-timeout>
</basic-scaling>
如果模块处理来自任务队列的请求,则有10分钟时间完成其工作,这对于许多任务来说可能是充足的。