亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

云運行時的正常關閉

云運行時的正常關閉

Go
慕無忌1623718 2022-08-24 09:36:29
我指的是這篇文章:云運行時的正常關閉該示例概述了如何在 Node.js 中執行此操作。在Golang中如何做到這一點?簡單地將其添加到方法中是否有任何問題?func init()func shutdownGracefully() {    c := make(chan os.Signal)    signal.Notify(c, os.Interrupt, syscall.SIGTERM)    go func() {        <-c        // Do some cleanup stuff here...        os.Exit(0)    }()}
查看完整描述

2 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

我們有示例 Go 代碼,用于在 https://github.com/GoogleCloudPlatform/golang-samples/pull/1902 正確處理信號。它尚未合并,但實質上突出了如何在Go上正確執行此操作。

請注意,在本地運行時,將Ctrl+C發送到您的應用程序是SIGINT,但是在Cloud Run上,您將獲得SIGTERM。同樣重要的是,要正確傳遞取消并優雅地處理服務器關閉,同時不丟棄正在進行的請求(但是,正如您將在示例代碼中看到的那樣,它會為您處理其中的很大一部分)。net/http.Server


查看完整回答
反對 回復 2022-08-24
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

在Golang中如何做到這一點?


處理 Go 中正常關閉的一種慣用方法是使用一個語句來阻止主 goroutine 偵聽任何信號。從那里,您可以在必要時觸發所有正確的關機。select


例如:


select {

case err := <-anyOtherError:

    // ...

case signal := <- c:

    // Handle shutdown e.g. like http Server Shutdown

}

我喜歡在函數中設置它,并執行其他啟動任務,例如啟動服務器,配置等。run


查看完整回答
反對 回復 2022-08-24
  • 2 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號