diff options
| author | sostler <sbostler@gmail.com> | 2010-02-24 08:12:13 -0500 |
|---|---|---|
| committer | sostler <sbostler@gmail.com> | 2010-02-24 08:12:13 -0500 |
| commit | 3a44ede0d5c1aff3cdd6102ece91df1403f6d14a (patch) | |
| tree | 886df6de98b0685379f1f1f3aaf5da5fc42f87e2 | |
| parent | 8003ba27e49a630b24090f3af01426f35e85af67 (diff) | |
Added session_sweeper
| -rwxr-xr-x | src/session_sweeper.clj | 19 |
1 files changed, 19 insertions, 0 deletions
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 |
