如何在启动处理程序完成后显式停止Google App Engine动态后端?
我有一个后端程序,它在启动时会处理一个队列。当这个队列里的内容处理完了,启动的部分就会停止。我希望后端程序在这个启动部分完成后也能停止。我还有其他代码会向后端发送请求,如果有新的东西被添加到这个队列里。这些请求的作用就是让谷歌应用引擎(GAE)启动后端,这样它就能开始处理队列里的内容。
我不想让后端处于一种状态:启动部分已经完成,但后端却闲着没事做。我希望它能停止,这样下一次对后端的请求就会让GAE再次启动后端,从而再次调用启动部分,继续处理队列。
我该怎么做才能实现这个目标呢?
2 个回答
0
如果你把你的后台设置成动态后台,那么在处理完你的“触发”请求后,后台会在15分钟后自动停止。如果在接下来的15分钟内你没有再次发送那个“启动触发”请求,后台就会自动关闭。可惜的是,即使后台在这15分钟里没有做任何事情,你还是得支付至少15分钟的使用费用。我在我的应用里也是这样做的——后台启动后,会从一个拉取队列中获取任务,当队列空了就会闲置。我每小时这样做一次,所以我每天最终要支付24/3 = 8小时的后台使用费。因为这低于9小时的配额,所以我现在还算满意。
1
目前,后端无法通过程序来启动和停止。听起来你想要的是一个常规的任务队列,这个任务队列的行为正好符合你的描述。