blob: 847d5045e4344143f37bd94a0ad3233fd49739d9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
(ns session-sweeper
(:use compojure))
(def *run-pruner* true)
(def *pruner-sleep-ms* (* 1000 60 5))
(def *pruner-agent* (agent nil))
(defn prune-compojure-sessions! [x]
(doseq [[session-id session] @memory-sessions]
(if (< (session :expires-at) (System/currentTimeMillis))
(dosync
(commute memory-sessions dissoc session-id))))
(Thread/sleep *pruner-sleep-ms*)
(when *run-pruner*
(send *pruner-agent* #'prune-compojure-sessions!))
x)
(defn start-session-pruner! []
(send *pruner-agent* prune-compojure-sessions!))
|