The tools-timer is a Java Timer and TimerTask wrapper for Clojure.
The API is currently undergoing some tweaks to simplify the interface. These should be concluded with the 1.0.3 stable release.
Add the following to your project.clj:
[tools-timer "1.0.4"]
You can simply start a period task in every 5 seconds immediately like this:
(use 'tools-timer.core)
(run-task! #(println"Say hello every 5 seconds.") :period5000)If you want delay the first run with 2 seconds:
(run-task! #(println"Say hello after 2 seconds.") :delay2000)Use this if you want to execute a task at an absolute time:
(run-task! #(println"Say hello at 2013-01-01T00:00:00 in beijing.") :at #inst "2013-01-01T00:00:00+08:00")And, you can use the same timer in more than one tasks:
(defgreeting-timer (timer:name"The timer for greeting"))
(run-task! #(println"Say hello after 2 seconds.") :delay2000:by greeting-timer)
(run-task! #(println"Say hello every 5 seconds.") :period5000:by greeting-timer)Finally, you can cancel a timer's tasks:
(cancel! greeting-timer)For more detailed information on ruiyun.tools.timer, please refer to the [documentation].
Forked from ruiyun.tools.timer, by Ruiyun Wen
Copyright (C) 2012 Ruiyun Wen
Distributed under the Eclipse Public License, the same as Clojure.