2016-09-07 48 views
0

我正在嘗試編寫一個Go應用程序,它定期輪詢由PHP應用程序公開的REST端點。 Go輪詢應用程序將有效載荷讀入一個結構體並進行進一步處理。我正在尋找一些啓動實施的建議。定期輪詢REST端點Go

+1

你可能只是寫一個for循環,睡了一段時間,並在查詢每次迭代的REST端點。可能你會在專用的goroutine中運行for循環。否則你也可以使用Ticker(https://golang.org/pkg/time/#Ticker)。 –

+0

謝謝。這可以通過長時間輪詢來實現嗎? – citizenBane

+0

是的,可以用於長時間輪詢。 –

回答

2

最簡單的方法是使用一個股票代碼:

ticker := time.NewTicker(time.Second * 1).C 
go func() { 
    for { 
     select { 
     case <- ticker: 
      response,_ := http.Get("http://...") 
      _, err := io.Copy(os.Stdout, response.Body) 
      if err != nil { 
       log.Fatal(err) 
      } 
      response.Body.Close() 
     } 
    } 

}() 


time.Sleep(time.Second * 10)