From 18f55d156995371bfb06ca8cd91da5a922d2a937 Mon Sep 17 00:00:00 2001 From: Frédéric Guillot Date: Sat, 16 Dec 2017 18:48:17 -0800 Subject: Add scheduler to clean old sessions --- storage/user_session.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'storage/user_session.go') diff --git a/storage/user_session.go b/storage/user_session.go index ffb82fc..63e25e0 100644 --- a/storage/user_session.go +++ b/storage/user_session.go @@ -127,3 +127,17 @@ func (s *Storage) RemoveUserSessionByID(userID, sessionID int64) error { return nil } + +// CleanOldUserSessions removes user sessions older than 30 days. +func (s *Storage) CleanOldUserSessions() int64 { + query := `DELETE FROM user_sessions + WHERE id IN (SELECT id FROM user_sessions WHERE created_at < now() - interval '30 days')` + + result, err := s.db.Exec(query) + if err != nil { + return 0 + } + + n, _ := result.RowsAffected() + return n +} -- cgit v1.2.3