当前位置: 首页 > news >正文

建筑八大员报名网站建筑设计师网站

建筑八大员报名网站,建筑设计师网站,无锡市网站,企业网站模板下载需谨慎半数留有后门文章目录 程序安全退出执行代码的基本:信号拦截执行代码的改进:信号拦截包装器实践捕获键盘输入示例代码go-svc介绍程序及服务的控制是指在计算机系统中对程序和服务进行管理、监控和调控的过程。这个过程可以涉及到多个方面,包括资源管理、运行状态监测、安全性控制等。本质… 文章目录 程序安全退出执行代码的基本:信号拦截执行代码的改进:信号拦截包装器实践捕获键盘输入示例代码 go-svc介绍 程序及服务的控制是指在计算机系统中对程序和服务进行管理、监控和调控的过程。这个过程可以涉及到多个方面,包括资源管理、运行状态监测、安全性控制等。本质上而言就是正确的启动,并可控的停止或退出。在go语言中,其实就是程序安全退出、服务控制两个方面。 程序安全退出 在代码部署后,我们可能因为服务配置发生变化或其他各种原因,需要将服务停止或者重启。通常就是for循环阻塞,运行代码,然后通过control+C或者kill来强制退出。代码如下: //file svc1.go package mainimport ("fmt""time" ) //当接收到Control+c,kill -1,kill -2,kill -9 均无法正常执行defer函数 func main() {fmt.Println("application is begin.")//以下代码不会执行defer fmt.Println("application is end.")for {time.Sleep(time.Second)fmt.Println("application is running.")} }但这种情况下,程序是不会执行defer的代码的,因此无法正确处理结束操作,会丢失一些很关键的日志记录、消息通知,非常不安全的。这时,需要引入一个简单的框架,来执行退出。 执行代码的基本:信号拦截 //file svc2.go package mainimport ("fmt""time""os/signal""os" ) //当接收到Control+c,kill -1,kill -2 的时候,都可以执行执行defer函数 // kill -9依然不会正常退出。 func main() {fmt.Println("application is begin.")//当程序接受到退出信号的时候,将会执行defer fmt.Println("application is end.")//协程启动的匿名函数,模拟业务代码go func(){for {time.Sleep(time.Second)fmt.Println("application is running.")}}()//捕获程序退出信号msgChan:=make(chan os.Signal,1)signal.Notify(msgChan,os.Interrupt,os.Kill)-msgChan }此时,我们实现了程序退出时的信号拦截,补充业务代码就可以了。但实际业务逻辑至少涉及到初始化、业务处理、退出三大块,代码量多了,会显得比较混乱,这就需要规范代码的结构。 执行代码的改进:信号拦截包装器 考虑上述情况,我们将正常的程序定义为: Init: 系统初始化,比如识别操作系统、初始化服务发现Consul、Zookeper的agent、数据库连接池等。 Start:程序主要业务逻辑,包括但不限于数据加载、服务注册、具体业务响应。 Stop: 程序退出时的业务,主要包括内存数据存储、服务注销。 改写之前的代码 //file svc3.go package mainimport ("fmt""time""study1/svc" )type Program struct {}func (p *Program) Start()error {fmt.Println("application is begin.")//必须非阻塞,因此通过协程封装。go func(){for {time.Sleep(time.Second)fmt.Println("application is running.")}}()return nil } func (p *Program)Init()error{
http://www.zqtcl.cn/news/31743/

相关文章:

  • 车陂手机网站开发大连在哪里
  • 河南做网站需要多少钱wordpress模板调用数据
  • 昆明网站建设 熊掌号网络管理服务器
  • 做app的网站有哪些功能邦邻营销型网站建设
  • 网站创建服务公司网络推广推广外包服务
  • 郑州网站优化公司网站建设最低要求
  • 工信部网站备案修改广告设计模板素材图片
  • WordPress主题不显示评论汕头网站优化哪家好
  • 青岛模板网站建设价格商城网站开发教程视频
  • 给一个免费的网站做网站公司哪个好
  • 网站制作app开发公司嘉兴网站建设电话
  • 网站建设咨询电话网站做排名2015
  • 制作企业网站的软件做悬赏任务的网站
  • 只做水果的网站网站开发建设需要什么
  • 台州网站关键字优化详情衡水哪儿专业做网站
  • 网站收录了怎么做排名阳江网约车
  • 泉州官方网站能看建设动漫黄图的网站
  • 建设网站创业网站制作排版
  • 网站开发和运行 法律网站建设要素的核心内容
  • 网站中文章内图片做超链接wordpress 3 企业主题下载
  • 个人介绍网站源码怎么分享网站
  • php网站攻击wordpress换域名换服务器
  • 微信官网与手机网站区别wordpress去除图片id
  • wordpress代码目录黑帽seo联系方式
  • 如何评判网站建设岗位广东省自然资源厅网站
  • 汽配网站建设长春seo公司哪家好
  • c 手机网站开发工具手机端网站的区别吗
  • 新手快速建设网站花生壳网站无法登陆
  • 网站建设哪家服务好兰陵住房建设局网站
  • 深圳公司开发网站眉山建行网站