NutzCN Logo
问答 nutz如何优雅停机
发布于 2625天前 作者 qq_e25320ed 1650 次浏览 复制 上一个帖子 下一个帖子
标签:

场景:
当客户端执行kill pid时候,并不想马上结束进程。当有活动进程,包括客户端调用和服务端被调用或者范围数据库中。此时,期望设置一个超时时间,此时希望nutz来等待进程执行完成再进行关闭容器和释放连接等,也就是优雅停机。
nutz 在 NutFilter.destroy(),中完成停机的操作,在kill pid 会调用。
问题: 请问如何做到判断还有没结束连接线程或者事务时候,不停机? 等待处理完再停机。
使用超时时间来控制最大超时停机时间?

public void destroy() {
		if (proxyFilter != null)
    		return;
        Mvcs.resetALL();
        Mvcs.set(selfName, null, null);
        if (handler != null)
            handler.depose();
        Mvcs.close();
        Mvcs.setServletContext(null);
    }
5 回复
@SetupBy(MainSetup.class)

然后在MainSetupBy的destroy方法内执行自定义的销毁工作

MainSetup.destroy()和NutFilter.destroy()的执行顺序是什么?如果我在MainSetup.destroy() 等待,那NutFilter.destroy()会不会先执行?

也就是我希望MVC容器和数据库连接先不要销毁,因为我还有交易没完成

NutFilter.destroy()调用的就是 MainSetup.destroy() , 然后再销毁ioc容器
建议自行debug

好,问题解决了,谢谢兽总~

添加回复
请先登陆
回到顶部