设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

使用Go处理每分钟百万请求(3)

发布时间:2019-07-02 17:29 所属栏目:21 来源:MarcioCastilho
导读:我们修改了我们的Web请求处理程序以创建具有有效负载的Job struct,并将其发送到 JobQueueChannel以供worker处理。 funcpayloadHandler(whttp.ResponseWriter,r*http.Request){ ifr.Method!=POST{ w.WriteHeader(ht

我们修改了我们的Web请求处理程序以创建具有有效负载的Job struct,并将其发送到 JobQueueChannel以供worker处理。

  1. func payloadHandler(w http.ResponseWriter, r *http.Request) { 
  2.  
  3.     if r.Method != "POST" { 
  4.         w.WriteHeader(http.StatusMethodNotAllowed) 
  5.         return 
  6.     } 
  7.  
  8.     // Read the body into a string for json decoding 
  9.     var content = &PayloadCollection{} 
  10.     err := json.NewDecoder(io.LimitReader(r.Body, MaxLength)).Decode(&content) 
  11.     if err != nil { 
  12.         w.Header().Set("Content-Type", "application/json; charset=UTF-8") 
  13.         w.WriteHeader(http.StatusBadRequest) 
  14.         return 
  15.     } 
  16.  
  17.     // Go through each payload and queue items individually to be posted to S3 
  18.     for _, payload := range content.Payloads { 
  19.  
  20.         // let's create a job with the payload 
  21.         work := Job{Payload: payload} 
  22.  
  23.         // Push the work onto the queue. 
  24.         JobQueue <- work 
  25.     } 
  26.  
  27.     w.WriteHeader(http.StatusOK) 

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读