package main import ( "fmt" "log" "net/http" ) func main() { rch := make(chan *WorkerRequest, 4096) for i := 0; i < 8; i++ { log.Printf("worker %d started\n", i) w := NewWorker(rch) err := w.Start("init.lua") if err != nil { log.Fatal(err) } if i == 0 { for _, route := range w.ListRoutes() { http.HandleFunc( route, func (wr http.ResponseWriter, r *http.Request) { resCh := w.Request(route, r) res := <- resCh for k, h := range res.Headers { wr.Header().Set(k, h) } wr.WriteHeader(int(res.Code)) fmt.Fprint(wr, string(res.Body)) }, ) } } go w.Listen() defer w.Stop() } fmt.Println("running") log.Fatal(http.ListenAndServe("127.0.0.1:3002", nil)) }