开始和停止Google App Engine后端 [英] Starting and stopping Google App Engine backends

查看:145
本文介绍了开始和停止Google App Engine后端的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我阅读了Google App Engine后端文档,但我仍然无法理解如何从Python启动/停止后端(动态后端)(我猜是使用URLFetch)。



有人可以给我一个代码示例吗?后端将不在应用程序的默认版本上。

解决方案

它取决于您使用的后端类型,Resident Backends 无法通过管理控制台或命令行从生产环境中关闭,而动态后端在闲置几分钟后关闭。



所以如果你使用动态后端,你可以发送一个请求,告诉它停止它正在做的事情,并且它会自动关闭。

http://code.google.com/intl/iw/appengine/docs/python/ config / backends.html#Types_of_Backends



编辑

b $ b

这可能如何工作的示例:

  from google.appengine.ext import webapp 
from google.appengine.api从google.appengine.ext.webapp.util导入memcache
rt run_wsgi_app
导入时间
$ b $ class ShutdownHandler(webapp.RequestHandler):
def get(self):
memcache.put('backendShutdown',True,60)

class StartHandler(webapp.RequestHandler):
def get(self):
lastCheck = time.time()
True:
if time .time() - 60> lastCheck:
stopBackend = memcache.get('backendShutdown')
if stopBackend:
memcache.delete('backendShutdown')
break
lastCheck = time.time( )

$ b $如果__name__ =='__main__':
_handlers = [(r'/ _ ah / start',StartHandler),
(r'/ backend /工人/关机',ShutdownHandler)]#一些关机处理程序
run_wsgi_app(webapp.WSGIApplication(_handlers))

为了阻止它,您可以使用:

  from google.appengine.api import backends,urlfetch 
url = backends.get_url('worker')+'/ backend / worker / shutdown'
urlfetch.fetch(url)


I read the Google App Engine backend docs, but I still can't understand how to start/stop backends (dynamic backends) from Python (using URLFetch, I guess).

Could someone give me a code example? The backend will not be on the application's default version.

解决方案

It depends on what type of backend you are using, "Resident Backends" can't be shutdown from the production environment only via the Admin Console or command-line while "Dynamic Backends" are shutdown after sitting idle for a few minutes.

So if you use Dynamic Backends you can just send a request telling it to stop what it is doing and it will be shutdown automatically.

http://code.google.com/intl/iw/appengine/docs/python/config/backends.html#Types_of_Backends

Edit

Example of how this might work:

from google.appengine.ext import webapp
from google.appengine.api import memcache
from google.appengine.ext.webapp.util import run_wsgi_app
import time

class ShutdownHandler(webapp.RequestHandler):
    def get(self):
        memcache.put('backendShutdown', True, 60)

class StartHandler(webapp.RequestHandler):
    def get(self):
        lastCheck = time.time()
        while True:
            if time.time() - 60 > lastCheck:
                stopBackend = memcache.get('backendShutdown')
                if stopBackend:
                    memcache.delete('backendShutdown')
                    break
                lastCheck = time.time()


if __name__ == '__main__':
    _handlers = [(r'/_ah/start', StartHandler),
                 (r'/backend/worker/shutdown', ShutdownHandler)] # somekind of handler for shutdown
    run_wsgi_app(webapp.WSGIApplication(_handlers))

And to stop it you would use:

from google.appengine.api import backends, urlfetch
url = backends.get_url('worker') + '/backend/worker/shutdown'
urlfetch.fetch(url)

这篇关于开始和停止Google App Engine后端的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆