Work on failed outbound requests and move type migrators
- DB type migrators are now in separate file, in preparation for full custom sql migration statements - Start work on handling failed outbound requests stored in the db
This commit is contained in:
parent
81a01fbf8b
commit
7ac4c628b8
13 changed files with 372 additions and 145 deletions
30
storage-new/cleaners/killDeadServers.go
Normal file
30
storage-new/cleaners/killDeadServers.go
Normal file
|
@ -0,0 +1,30 @@
|
|||
package cleaners
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
|
||||
"git.mstar.dev/mstar/linstrom/storage-new/dbgen"
|
||||
)
|
||||
|
||||
const maxServerAge = time.Hour * 24 * 30 // One month
|
||||
|
||||
func init() {
|
||||
cleanerBuilders = append(cleanerBuilders, buildKillDeadServers)
|
||||
}
|
||||
|
||||
// Marks all servers where the last interaction time is older than maxServerAge
|
||||
func tickKillDeadServers(now time.Time) {
|
||||
_, err := dbgen.RemoteServer.Where(dbgen.RemoteServer.LastInteraction.Lt(now.Add(-maxServerAge)), dbgen.RemoteServer.IsSelf.Is(false)).
|
||||
UpdateColumn(dbgen.RemoteServer.IsDead, true)
|
||||
if err != nil {
|
||||
log.Error().
|
||||
Err(err).
|
||||
Msg("Failed to mark servers without interaction for over a 30 days as dead")
|
||||
}
|
||||
}
|
||||
|
||||
func buildKillDeadServers() (onTick func(time.Time), name string, tickSpeed time.Duration) {
|
||||
return tickKillDeadServers, "kill-dead-servers", time.Hour
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue