Google app engine 将应用程序重新定位到另一台服务器时的GAE行为

Google app engine 将应用程序重新定位到另一台服务器时的GAE行为,google-app-engine,Google App Engine,两个问题: Google App Engine是否在将应用程序重新定位到另一台服务器之前向应用程序发送任何类型的消息 如果是,这是什么信息 不,不是。它也不会重新定位,旧实例会继续运行(并在空闲足够长的时间后最终停止),而新实例则会生成。不,它不会。它也不会重新定位,旧实例会继续运行(并在空闲足够长的时间后最终停止),而新实例会生成。有时应用程序引擎需要将您的实例移动到另一台机器上以改善负载分配 当应用程序引擎需要关闭手动缩放实例时,请先关闭它 通知实例。有两种方法可以接收此消息 通知。首先,是

两个问题:

  • Google App Engine是否在将应用程序重新定位到另一台服务器之前向应用程序发送任何类型的消息

  • 如果是,这是什么信息


  • 不,不是。它也不会重新定位,旧实例会继续运行(并在空闲足够长的时间后最终停止),而新实例则会生成。

    不,它不会。它也不会重新定位,旧实例会继续运行(并在空闲足够长的时间后最终停止),而新实例会生成。

    有时应用程序引擎需要将您的实例移动到另一台机器上以改善负载分配

    当应用程序引擎需要关闭手动缩放实例时,请先关闭它 通知实例。有两种方法可以接收此消息 通知。首先,是\u正在从中关闭\u down()方法 google.appengine.api.runtime开始返回true。第二,如果你 已注册关机挂钩,将调用它。这是个好主意 在启动请求中注册关闭挂钩。之后 发出通知后,现有请求将在30秒内发出 完成后,新请求立即返回404

    如果一个实例是 处理请求时,App Engine会暂停请求并运行 关闭挂钩。如果没有活动请求,应用程序引擎将发送 /_ah/stop请求,运行关闭挂钩。/_ah/停止请求 绕过正常处理逻辑,用户代码无法处理;它的 唯一的目的是调用关闭挂钩。如果你提出一个例外 在关闭钩子中处理另一个请求时,它将冒泡 向上进入请求,在那里您可以捕获它

    以下代码示例演示了一个基本的关闭挂钩:

    from google.appengine.api import apiproxy_stub_map
    from google.appengine.api import runtime
    
    def my_shutdown_hook():
      apiproxy_stub_map.apiproxy.CancelApiCalls()
      save_state()
      # May want to raise an exception
    
    runtime.set_shutdown_hook(my_shutdown_hook)
    Alternatively, the following sample demonstrates how to use the is_shutting_down() method:
    while more_work_to_do and not runtime.is_shutting_down():
      do_some_work()
      save_state()
    

    此处有更多详细信息:

    有时应用程序引擎需要将您的实例移动到另一台机器上以改进负载分配

    当应用程序引擎需要关闭手动缩放实例时,请先关闭它 通知实例。有两种方法可以接收此消息 通知。首先,是\u正在从中关闭\u down()方法 google.appengine.api.runtime开始返回true。第二,如果你 已注册关机挂钩,将调用它。这是个好主意 在启动请求中注册关闭挂钩。之后 发出通知后,现有请求将在30秒内发出 完成后,新请求立即返回404

    如果一个实例是 处理请求时,App Engine会暂停请求并运行 关闭挂钩。如果没有活动请求,应用程序引擎将发送 /_ah/stop请求,运行关闭挂钩。/_ah/停止请求 绕过正常处理逻辑,用户代码无法处理;它的 唯一的目的是调用关闭挂钩。如果你提出一个例外 在关闭钩子中处理另一个请求时,它将冒泡 向上进入请求,在那里您可以捕获它

    以下代码示例演示了一个基本的关闭挂钩:

    from google.appengine.api import apiproxy_stub_map
    from google.appengine.api import runtime
    
    def my_shutdown_hook():
      apiproxy_stub_map.apiproxy.CancelApiCalls()
      save_state()
      # May want to raise an exception
    
    runtime.set_shutdown_hook(my_shutdown_hook)
    Alternatively, the following sample demonstrates how to use the is_shutting_down() method:
    while more_work_to_do and not runtime.is_shutting_down():
      do_some_work()
      save_state()
    
    详情如下: