記一次url引數截斷的問題

2021-09-01 18:42:12 字數 1532 閱讀 5585

在最近的開發過程中要根據一堆id值去刪除es中的資料,就寫了乙個指令碼介面,傳入了idlist。這裡選擇的是get方式的介面,將idlist以逗號分隔當做字串傳入當做引數,然後在介面中轉換成list型別再對es進行操作。

這個介面中的process是為了控制是否真正執行刷資料的邏輯,在一些刷資料的介面中加入這個引數,可以去在真正去刷資料之前,去看看撈出來的資料是否正確,然後再進行刷資料的邏輯。

(value =

"/es/fix/removenotconsumerdata"

)@responsebody

public

boolean

removenotconsumerdata

(@requestparam

(value =

"kdtidlist"

) string kdtidliststring,

@requestparam

(value =

"process"

, defaultvalue =

"false"

)boolean process)

", json.

tojsonstring

(kdtidlist));

if(!process)

setsuccessset = sets.

newhashset()

; set

failset = sets.

newhashset()

;for

(long kdtid : kdtidlist)

, msg:{}"

, kdtid, esresult.

getmessage()

);failset.

add(kdtid);}

else

}catch

(throwable e)

", kdtid, e)

; failset.

add(kdtid);}

}if(kdtidlist.

size()

!= successset.

size()

)", json.

tojsonstring

(failset));

return

false;}

else

}這裡在機器上進行跑的時候,先去跑了單個id資料,發現是沒有問題的。之後就想一把梭去將資料跑完,就把整個id集合資料放入了url要傳入的引數之中,這個時候發現出現了問題。

在資料的最後一條id值被截斷了,只是去截止到了42122,所以這個會被轉為42122存入要刷的id集合中。這個就可能去刷錯了資料(所以之前的process引數還是很有用的 = =)。

這裡有個比較穩的解決方案是要刷的資料可以把檔案放在resource目錄下,然後通過讀取這個檔案的內容直接去去刷資料,這樣就不會存在這個問題了。這裡去簡單記錄下這次引數被截斷的過程。

記一次線上問題排查

這次線上問題來的比較突然,影響也大,用部落格記錄下整個過程,也當作是對這次事故的一次總結歸納。day1 2018年06月21號上午10點,收到運營同事通知,http com api 訪問量劇增,日誌量達到80g 天,而且有上公升趨勢。運營同事讓我們排查,這種訪問是否正常。運營統計訪問量 收到通知後立...

記一次線上快取問題

今天上線專案時,檢視乙個軟體列表,我的介面裡是findall,可是軟體列表裡沒有type欄位沒有出現,後來檢查發現 是線下softmodel裡type欄位沒更新過來,清完線下表快取,並用gii重新生成了下softmodel,然後再次上線。再次檢視線上該軟體列表,還是沒有type欄位,估計第一次檢視的...

記一次mysql死鎖問題

場景 innodb下不同的事務進行更新和插入操作導致資料庫死鎖,如下,在批量插入之前,進行了邏輯刪除操作,這段 在併發情況下出現死鎖 堆疊異常 deadlock found when trying to get lock try restarting transaction 更新操作sql 批量插入...