douzhan1935 2017-10-11 07:18
浏览 2
已采纳

初始化和销毁​​功能

I am still beginner with golang in Google Cloud Appengine (standard). I want to use a function that is automatically call for the instance shutting down. There is a function init called during startup. Now I am looking for the opposite part like a destroy function. Seems there is something like that for python, but could not find anything for golang.

How could you realise such a destroy fuction in google appengine instances ?

  • 写回答

1条回答 默认 最新

  • duanmangxie7131 2017-10-11 08:39
    关注

    This is documented at Go - How Instances are Managed.

    Unfortunately the Go doc is incomplete, here's the link to the Pyton version: Python - How Instances are Managed. The way it is implemented / supported is language-agnostic.

    When an instance is spin up, an HTTP GET request is sent to the /_ah/start path.

    Before an instance is taken down, an HTTP GET request is sent to the /_ah/stop path.

    You should use package init() functions for initialization purposes as that always runs, and only once. If a request is required for your init functions, then register a handler to the _/ah/start path.

    And you may register a handler to /_ah/stop and implement "shutdown" functionality like this:

    func init() {
        http.HandleFunc("/_ah/stop", shutdownHandler)
    }
    
    func shutdownHandler(w http.ResponseWriter, r *http.Request) {
        doSomeWork()
        saveState()
    }
    

    But you can't rely on this 100%:

    Note: It's important to recognize that the shutdown hook is not always able to run before an instance terminates. In rare cases, an outage can occur that prevents App Engine from providing 30 seconds of shutdown time. Thus, we recommend periodically checkpointing the state of your instance and using it primarily as an in-memory cache rather than a reliable data store.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)