第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

golang unix 套接字錯誤。撥號:資源暫時不可用

golang unix 套接字錯誤。撥號:資源暫時不可用

Go
繁星點點滴滴 2021-10-04 17:38:37
所以我正在嘗試使用帶有 fluentd 的 unix sockets 進行日志記錄任務并隨機發(fā)現(xiàn),偶爾會出現(xiàn)錯誤撥號:{socket_name} 資源暫時不可用關(guān)于為什么會發(fā)生這種情況的任何想法?我嘗試添加“重試”邏輯以減少錯誤,但有時仍會發(fā)生。另外,對于fluntd,我們使用unix sockets通信的默認配置func connect() {var connection net.Connvar err errorfor i := 0; i < retry_count; i++ {    connection, err = net.Dial("unix", path_to_socket)    if err == nil {        break    }    time.Sleep(time.Duration(math.Exp2(float64(retry_count))) * time.Millisecond)}if err != nil {    fmt.Println(err)} else {        connection.Write(data_to_send_socket)    }     defer connection.Close()}
查看完整描述

2 回答

?
心有法竹

TA貢獻1866條經(jīng)驗 獲得超5個贊

Go 以非阻塞模式創(chuàng)建它的套接字,這意味著某些通常會阻塞的系統(tǒng)調(diào)用。在大多數(shù)情況下,它EAGAIN通過等待套接字準備好讀/寫來透明地處理錯誤(由“資源暫時不可用”消息指示的內(nèi)容)。不過,它似乎沒有這種connect調(diào)用邏輯Dial。

如果偵聽隊列已滿,則在連接到 UNIX 域套接字時可能connect會返回EAGAIN。如果客戶端連接到它的速度比它接受它們的速度快,就會發(fā)生這種情況。在這種情況下,Go 可能應該等待套接字,直到它變得可連接,然后重試類似于它對Read/所做的事情Write,但它似乎沒有這種邏輯。

所以你最好的辦法是通過等待和重試Dial調(diào)用來處理錯誤。那,或者找出您的服務器不及時接受連接的原因。


查看完整回答
反對 回復 2021-10-04
  • 2 回答
  • 0 關(guān)注
  • 362 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號