我正在爲使用Golang的內置JSON-RPC服務器的程序編寫關機處理程序,但遇到了困難。你能幫我嗎?關機時的Golang JSON-RPC服務器控制
我停止接受輸入連接,停止接受傳入請求現有的連接(發送錯誤,是真的),但我有一個我無法控制的時刻,或者至少,我不知道如何控制。
的問題是:
如何保證exisiting現有連接的請求的結果給予Golang的客戶端的內置的JSON-RPC服務器?
我想控制調用RPC方法的結構,但它不在我的代碼中。例如,我有一個RPC Action'User.Get'。我有一個我控制的名爲'Get'的函數。我如何控制啓動這個'Get'函數的代碼?我必須修改Google的RPC服務器還是有更有效的方法?
也許,RPC服務器中存在一些變量,其中包含正在處理的活動請求的數量?
我在https://golang.org/src/net/rpc/server.go
的中看到NumCalls()
和numCalls
。問題是這個字段不公開...此外,.../rpc/server.go
使用sync.Map
,它不編譯。我的Golang版本太舊了? :)
似乎現在最簡單的方法是從所有RPC操作函數操縱全局計數器。 :-)如果你知道更好的解決方案,請告訴我。謝謝。 :-)