From 3a44ede0d5c1aff3cdd6102ece91df1403f6d14a Mon Sep 17 00:00:00 2001 From: sostler Date: Wed, 24 Feb 2010 08:12:13 -0500 Subject: Added session_sweeper --- src/session_sweeper.clj | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 src/session_sweeper.clj (limited to 'src') diff --git a/src/session_sweeper.clj b/src/session_sweeper.clj new file mode 100755 index 0000000..847d504 --- /dev/null +++ b/src/session_sweeper.clj @@ -0,0 +1,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!)) \ No newline at end of file -- cgit v1.2.3-70-g09d2