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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

恐慌:運(yùn)行時(shí)錯(cuò)誤:無(wú)效的內(nèi)存地址或更大數(shù)據(jù)的 nil 指針取消引用

恐慌:運(yùn)行時(shí)錯(cuò)誤:無(wú)效的內(nèi)存地址或更大數(shù)據(jù)的 nil 指針取消引用

Go
UYOU 2022-06-21 15:58:21
我正在使用 Apache Prediction IO 開(kāi)發(fā)推薦引擎。在事件服務(wù)器之前,我有一個(gè) GO api,用于偵聽(tīng)來(lái)自客戶和進(jìn)口商的事件。在客戶使用導(dǎo)入器的特定情況下,我收集導(dǎo)入的身份,并將 json 從導(dǎo)入器 api 發(fā)送到 GO api。例如,如果用戶導(dǎo)入一個(gè)包含 45000 個(gè)數(shù)據(jù)的 csv,我會(huì)將這 45000 個(gè)身份以 json 格式發(fā)送到 GO api,例如{"barcodes":[...]}. 預(yù)測(cè) IO 事件服務(wù)器需要特定形狀的數(shù)據(jù)。type ItemEvent struct {    Event      string              `json:"event"`    EntityType string              `json:"entityType"`    EntityId   string              `json:"entityId"`    Properties map[string][]string `json:"properties"`    EventTime  time.Time           `json:"eventTime"`}type ItemBulkEvent struct {    Event     string    `json:"event"`    Barcodes []string  `json:"barcodes"`    EventTime time.Time `json:"eventTime"`}ItemEvent是我將從 GO Api 發(fā)送到事件服務(wù)器的最終數(shù)據(jù)。ItemBulkEvent是我從進(jìn)口商 api 收到的數(shù)據(jù)。func HandleItemBulkEvent(w http.ResponseWriter, r *http.Request) {    var itemBulk model.ItemBulkEvent    err := decode(r,&itemBulk)    if err != nil {        log.Fatalln("handleitembulkevent -> ",err)        util.RespondWithError(w,400,err.Error())    }else {        var item model.ItemEvent        item.EventTime = itemBulk.EventTime; item.EntityType = "item"; item.Event = itemBulk.Event        itemList := make([]model.ItemEvent,0,50)        for index, barcode := range itemBulk.Barcodes{            item.EntityId = barcode            if (index > 0 && (index % 49) == 0){                itemList = append(itemList, item)                go sendBulkItemToEventServer(w,r,itemList)HandleItemBulkEvent是批量更新的處理函數(shù)。在這一步中,我應(yīng)該提到預(yù)測(cè) io 的批量上傳。通過(guò) rest api 預(yù)測(cè) io 事件服務(wù)器每個(gè)請(qǐng)求需要 50 個(gè)事件。所以我創(chuàng)建了一個(gè)包含 50 個(gè)上限和一個(gè)項(xiàng)目的列表。我使用相同的項(xiàng)目,只是每次都更改身份部分(條形碼)并添加到列表中。在每 50 個(gè)項(xiàng)目中,我使用了一個(gè)處理函數(shù),將該列表發(fā)送到事件服務(wù)器,然后清理列表,依此類推。sendBulkItemToEventServer函數(shù)編組傳入的項(xiàng)目列表并向預(yù)測(cè) io 的事件服務(wù)器發(fā)出發(fā)布請(qǐng)求。在這部分中,當(dāng)我嘗試使用 5000+- 項(xiàng)目時(shí),它做得很好,但是當(dāng)我嘗試使用 45000 項(xiàng)目時(shí),應(yīng)用程序崩潰并出現(xiàn)以下錯(cuò)誤。知道如何解決這個(gè)問(wèn)題嗎?
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

您的程序中有幾個(gè)錯(cuò)誤。運(yùn)行時(shí)錯(cuò)誤是因?yàn)槟跈z查 if err2is not nil,但是您正在打印err,而不是err2err為零,因此運(yùn)行時(shí)錯(cuò)誤。

這意味著err2不是零,所以你應(yīng)該看到那個(gè)錯(cuò)誤是什么。

您提到您正在分批發(fā)送 50 條消息,但該實(shí)現(xiàn)是錯(cuò)誤的。您將元素添加到itemList,然后用 that 啟動(dòng)一個(gè) goroutine itemList,然后截?cái)嗨⒃俅伍_(kāi)始填充。這是一場(chǎng)數(shù)據(jù)競(jìng)賽,你的 goroutine 將看到itemList處理程序正在修改的實(shí)例。無(wú)需截?cái)?,只?code>itemList在向 goroutine 提交一個(gè)時(shí)創(chuàng)建一個(gè)新的,這樣每個(gè) goroutine 都可以擁有自己的副本。

如果您想繼續(xù)使用相同的切片,您可以編組切片,然后將 JSON 消息傳遞給 goroutine 而不是切片。


查看完整回答
反對(duì) 回復(fù) 2022-06-21
?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

您收到的錯(cuò)誤是您發(fā)出請(qǐng)求的服務(wù)器發(fā)送的錯(cuò)誤。查看內(nèi)容以了解有關(guān)該錯(cuò)誤的更多信息。

很可能是以下 for 循環(huán)

for index, barcode := range itemBulk.Barcodes{

迭代次數(shù)過(guò)多,并且因?yàn)槟褂脝为?dú)的 go 例程來(lái)創(chuàng)建請(qǐng)求,所有請(qǐng)求同時(shí)發(fā)生,這會(huì)導(dǎo)致服務(wù)器過(guò)載或故意關(guān)閉連接。


查看完整回答
反對(duì) 回復(fù) 2022-06-21
  • 2 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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