0
我已經實現了基於gin
(golang web框架)的http服務器。golang服務器:如何連續檢索多個文件
我張貼2張圖片服務器curl multipart/form-data
:
curl -X POST -F [email protected] -F [email protected] -H "Content-Type: multipart/form-data" "http://server:port/path"
服務器的代碼如下所示:
func extractImgs(c *gin.Context) {
prefix := "prefix"
for ix := 0; ix < 2; ix++ {
file, _, err := c.Request.FormFile(prefix + strconv.Itoa(ix))
if err != nil {
// do sth.
return
}
face_recognize_async(file)
}
}
你知道,人臉識別是費時,我希望工作 - 流量爲:
get_1st_img -> recognize_face -> get_2nd_img -> recognize_face -> ...
我打印執行時間,檢索後返回全部2個文件。
我的問題:
1)如何不斷檢索這些文件,就像遍歷鏈表;
2)http multipart是一個不錯的選擇,我應該使用TCP/STCP來實現嗎?
是什麼你face_recognize_async樣子?我的猜測是,它只是名義上的異步,並且實際上是阻止的。 –
整個http FORM POSt必須在可以解析和操作其值之前發佈。您必須先等待所有文件上傳。然後,正如@Alexey所說,異步func實際上可能不是異步。它是否是線程安全的?如果是這樣,上傳完成後,請關閉兩個Goroutines。 – eduncan911
@AlexeySoshin face_recognize_async實際上是異步的,我會將圖片發送到其他GPU服務器。 –