mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
handling lost servers
This commit is contained in:
parent
0349199d0e
commit
85a1b419c0
|
@ -55,7 +55,7 @@ func dirAssignHandler(w http.ResponseWriter, r *http.Request) {
|
|||
if err == nil {
|
||||
writeJson(w, r, map[string]interface{}{"fid": fid, "url": machine.Url, "publicUrl": machine.PublicUrl, "count": count})
|
||||
} else {
|
||||
writeJson(w, r, map[string]interface{}{"error": err})
|
||||
writeJson(w, r, map[string]string{"error": err.Error()})
|
||||
}
|
||||
}
|
||||
func dirJoinHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
@ -80,6 +80,8 @@ func runMaster(cmd *Command, args []string) bool {
|
|||
http.HandleFunc("/dir/join", dirJoinHandler)
|
||||
http.HandleFunc("/dir/status", dirStatusHandler)
|
||||
|
||||
mapper.StartRefreshWritableVolumes()
|
||||
|
||||
log.Println("Start directory service at http://127.0.0.1:" + strconv.Itoa(*mport))
|
||||
e := http.ListenAndServe(":"+strconv.Itoa(*mport), nil)
|
||||
if e != nil {
|
||||
|
|
|
@ -76,6 +76,12 @@ func (m *Mapper) Add(machine *Machine) {
|
|||
}
|
||||
m.refreshWritableVolumes()
|
||||
}
|
||||
func (m *Mapper) remove(machine *Machine) {
|
||||
delete(m.Machines,machine.Url)
|
||||
for _, v := range machine.Volumes {
|
||||
delete(m.vid2machine,v.Id)
|
||||
}
|
||||
}
|
||||
func (m *Mapper) StartRefreshWritableVolumes() {
|
||||
go func() {
|
||||
for {
|
||||
|
@ -96,6 +102,9 @@ func (m *Mapper) refreshWritableVolumes() {
|
|||
writers = append(writers, v.Id)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
log.Println("Warning! Server", machine_entry.Url, "last seen is", time.Now().Unix()-machine_entry.LastSeen, "seconds ago!")
|
||||
m.remove(machine_entry)
|
||||
}
|
||||
}
|
||||
m.Writers = writers
|
||||
|
|
Loading…
Reference in a new issue