MCPcopy Create free account
hub / github.com/MG-RAST/Shock / Handle

Method Handle

shock-server/node/expire.go:27–49  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

25}
26
27func (nr *NodeReaper) Handle() {
28 waitDuration := time.Duration(conf.EXPIRE_WAIT) * time.Minute
29 for {
30 // sleep
31 time.Sleep(waitDuration)
32 // query to get expired nodes
33 nodes := Nodes{}
34 query := nr.getQuery()
35 nodes.GetAll(query)
36 // delete expired nodes
37 for _, n := range nodes {
38 logger.Infof("Deleting expired node: %s", n.Id)
39 if err := n.Delete(); err != nil {
40 err_msg := "err:@node_delete: " + err.Error()
41 logger.Error(err_msg)
42 }
43 }
44 // garbage collection: remove old nodes from Lockers, value is hours old
45 locker.NodeLockMgr.RemoveOld(1)
46 locker.FileLockMgr.RemoveOld(6)
47 locker.IndexLockMgr.RemoveOld(6)
48 }
49}
50
51func (nr *NodeReaper) getQuery() (query bson.M) {
52 hasExpire := bson.M{"expiration": bson.M{"$exists": true}} // has the field

Callers

nothing calls this directly

Calls 5

getQueryMethod · 0.95
GetAllMethod · 0.95
DeleteMethod · 0.45
ErrorMethod · 0.45
RemoveOldMethod · 0.45

Tested by

no test coverage detected