Browse Source

configurable read timeout

pull/2/head
Chris Lu 12 years ago
parent
commit
3a6c37aa6c
  1. 11
      weed-fs/src/cmd/weed/master.go
  2. 7
      weed-fs/src/cmd/weed/volume.go

11
weed-fs/src/cmd/weed/master.go

@ -34,6 +34,7 @@ var (
mpulse = cmdMaster.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats") mpulse = cmdMaster.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats")
confFile = cmdMaster.Flag.String("conf", "/etc/weedfs/weedfs.conf", "xml configuration file") confFile = cmdMaster.Flag.String("conf", "/etc/weedfs/weedfs.conf", "xml configuration file")
defaultRepType = cmdMaster.Flag.String("defaultReplicationType", "00", "Default replication type if not specified.") defaultRepType = cmdMaster.Flag.String("defaultReplicationType", "00", "Default replication type if not specified.")
mReadTimeout = cmdMaster.Flag.Int("readTimeout", 5, "connection read timeout in seconds")
) )
var topo *topology.Topology var topo *topology.Topology
@ -51,7 +52,7 @@ func dirLookupHandler(w http.ResponseWriter, r *http.Request) {
if machines != nil { if machines != nil {
ret := []map[string]string{} ret := []map[string]string{}
for _, dn := range *machines { for _, dn := range *machines {
ret = append(ret, map[string]string{"url": dn.Url(), "publicUrl":dn.PublicUrl})
ret = append(ret, map[string]string{"url": dn.Url(), "publicUrl": dn.PublicUrl})
} }
writeJson(w, r, map[string]interface{}{"locations": ret}) writeJson(w, r, map[string]interface{}{"locations": ret})
} else { } else {
@ -84,7 +85,7 @@ func dirAssignHandler(w http.ResponseWriter, r *http.Request) {
} }
fid, count, dn, err := topo.PickForWrite(rt, c) fid, count, dn, err := topo.PickForWrite(rt, c)
if err == nil { if err == nil {
writeJson(w, r, map[string]interface{}{"fid": fid, "url": dn.Url(), "publicUrl":dn.PublicUrl, "count": count})
writeJson(w, r, map[string]interface{}{"fid": fid, "url": dn.Url(), "publicUrl": dn.PublicUrl, "count": count})
} else { } else {
writeJson(w, r, map[string]string{"error": err.Error()}) writeJson(w, r, map[string]string{"error": err.Error()})
} }
@ -92,7 +93,7 @@ func dirAssignHandler(w http.ResponseWriter, r *http.Request) {
func dirJoinHandler(w http.ResponseWriter, r *http.Request) { func dirJoinHandler(w http.ResponseWriter, r *http.Request) {
ip := r.FormValue("ip") ip := r.FormValue("ip")
if ip == ""{
if ip == "" {
ip = r.RemoteAddr[0:strings.Index(r.RemoteAddr, ":")] ip = r.RemoteAddr[0:strings.Index(r.RemoteAddr, ":")]
} }
port, _ := strconv.Atoi(r.FormValue("port")) port, _ := strconv.Atoi(r.FormValue("port"))
@ -142,9 +143,9 @@ func runMaster(cmd *Command, args []string) bool {
log.Println("Start Weed Master", VERSION, "at port", strconv.Itoa(*mport)) log.Println("Start Weed Master", VERSION, "at port", strconv.Itoa(*mport))
srv := &http.Server{ srv := &http.Server{
Addr:":"+strconv.Itoa(*mport),
Addr: ":" + strconv.Itoa(*mport),
Handler: http.DefaultServeMux, Handler: http.DefaultServeMux,
ReadTimeout: 5*time.Second,
ReadTimeout: time.Duration(*mReadTimeout) * time.Second,
} }
e := srv.ListenAndServe() e := srv.ListenAndServe()
if e != nil { if e != nil {

7
weed-fs/src/cmd/weed/volume.go

@ -33,8 +33,9 @@ var (
ip = cmdVolume.Flag.String("ip", "localhost", "ip or server name") ip = cmdVolume.Flag.String("ip", "localhost", "ip or server name")
publicUrl = cmdVolume.Flag.String("publicUrl", "", "Publicly accessible <ip|server_name>:<port>") publicUrl = cmdVolume.Flag.String("publicUrl", "", "Publicly accessible <ip|server_name>:<port>")
masterNode = cmdVolume.Flag.String("mserver", "localhost:9333", "master server location") masterNode = cmdVolume.Flag.String("mserver", "localhost:9333", "master server location")
vpulse = cmdVolume.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats")
vpulse = cmdVolume.Flag.Int("pulseSeconds", 5, "number of seconds between heartbeats, must be smaller than the master's setting")
maxVolumeCount = cmdVolume.Flag.Int("max", 5, "maximum number of volumes") maxVolumeCount = cmdVolume.Flag.Int("max", 5, "maximum number of volumes")
vReadTimeout = cmdVolume.Flag.Int("readTimeout", 5, "connection read timeout in seconds")
store *storage.Store store *storage.Store
) )
@ -274,9 +275,9 @@ func runVolume(cmd *Command, args []string) bool {
log.Println("Start Weed volume server", VERSION, "at http://"+*ip+":"+strconv.Itoa(*vport)) log.Println("Start Weed volume server", VERSION, "at http://"+*ip+":"+strconv.Itoa(*vport))
srv := &http.Server{ srv := &http.Server{
Addr:":"+strconv.Itoa(*vport),
Addr: ":" + strconv.Itoa(*vport),
Handler: http.DefaultServeMux, Handler: http.DefaultServeMux,
ReadTimeout: 5*time.Second,
ReadTimeout: (time.Duration(*vReadTimeout) * time.Second),
} }
e := srv.ListenAndServe() e := srv.ListenAndServe()
if e != nil { if e != nil {

Loading…
Cancel
Save