tornado 热更新热重启

tornado 热更新代码段,热重启

#coding:utf-8
import time
import signal
import logging
import tornado.ioloop
from tornado import ioloop, web, httpserver
from tornado.options import define, parse_command_line, options

MAX_WAIT_SECONDS_BEFORE_SHUTDOWN = 10

def main():
    tornado.options.parse_command_line()
    #httpserver
    app = web.Application()
    httpserver = httpserver.HTTPServer(app, xheaders=True)
    httpserver.listen(options.port)
    

    def sig_handler(sig, frame):
        logging.debug("Caught Signal: %s", sig)
        ioloop.IOLoop.instance().add_callback(shutdown)
        
    def shutdown():
        logging.debug('Stopping HttpServer...')
        httpserver.stop() # no longer accept new http traffic
        
        logging.debug("IOLoop Will be Terminate in %s Seconds...", MAX_WAIT_SECONDS_BEFORE_SHUTDOWN)
        instance = ioloop.IOLoop.instance()
        deadline = time.time() + MAX_WAIT_SECONDS_BEFORE_SHUTDOWN
        
        #recursion for terminate lOLoop.instance() 
        def terminate():
            now = time.time()
            if now < deadline and (instance._callback or instance._timeouts):
                instance.add_timeout(now+1, terminate) 
            else:
                instance.stop() # After process all _callback and _timeouts, break TOLoop.instance
                logging.debug('Shutdown... ')
        #process recursion 
        terminate()
    #signal register
    signal.signal(signal.SIGINT, sig_handler) 
    signal.signal(signal.SIGTERM, sig_handler)
    #start ioloop for socket, infinite before catch signal 
    ioloop.IOLoop.instance().start () 
    logging.debug('Exit...')


if __name__ == '__main__':
    main()

 

supervisor命令:

重启脚本restart.sh

#逐个启动MyWeb每个端口进程,不中断服务
for i in "8081 8082 8083 8084":
do
    /opt/bin/supervisorctl /opt/conf/supervisor.conf restart MyWeb:$i; 
done
 
#重新加载nginx的配置
/opt/sbin/nginx /opt/conf/nginx.conf -s reload; 

 

转载于:https://my.oschina.net/zuoan001/blog/1808049

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值