[jenkinscat-docs] master: 1st version of data fetcher. (deef98b)
immanetize at fedoraproject.org
immanetize at fedoraproject.org
Fri Feb 6 07:41:29 UTC 2015
Repository : http://git.fedorahosted.org/cgit/jenkinscat-docs.git
On branch : master
>---------------------------------------------------------------
commit deef98bc679a8d3cece0809a7b59fd0fe995334b
Author: Pavel Tisnovsky <ptisnovs at redhat.com>
Date: Wed Feb 4 11:21:13 2015 +0100
1st version of data fetcher.
>---------------------------------------------------------------
ChangeLog | 6 +++++
src/jenkinscat/core.clj | 4 ++-
src/jenkinscat/data_fetcher.clj | 40 +++++++++++++++++++++++++++++++++++++++
3 files changed, 49 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 58453dd..0fda2b9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2015-02-04 Pavel Tisnovsky <ptisnovs at redhat.com>
+ * src/jenkinscat/core.clj:
+ * src/jenkinscat/data_fetcher.clj:
+ 1st version of data fetcher.
+
+2015-02-04 Pavel Tisnovsky <ptisnovs at redhat.com>
+
* src/jenkinscat/config.clj:
Added new configuration option.
* src/jenkinscat/fileutils.clj:
diff --git a/src/jenkinscat/core.clj b/src/jenkinscat/core.clj
index ce821e5..c1fba07 100644
--- a/src/jenkinscat/core.clj
+++ b/src/jenkinscat/core.clj
@@ -1,7 +1,7 @@
;;;
;;; Jenkinscat HTTP server that handles all requests send from clients/browsers.
;;;
-;;; Copyright (c) 2014 Pavel Tisnovsky, Red Hat
+;;; Copyright (c) 2014, 2015 Pavel Tisnovsky, Red Hat
;;; All rights reserved.
;;;
;;; Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,7 @@
(require '[jenkinscat.server :as server])
(require '[jenkinscat.books :as books])
+(require '[jenkinscat.data-fetcher :as data-fetcher])
(def app
"Definition of a Ring-based application behaviour."
@@ -67,6 +68,7 @@
(let [all-options (cli/parse-opts args cli-options)
options (all-options :options)
port (options :port)]
+ (.start (Thread. data-fetcher/run-fetcher))
(start-server port)))
; finito
diff --git a/src/jenkinscat/data_fetcher.clj b/src/jenkinscat/data_fetcher.clj
new file mode 100644
index 0000000..d9ea122
--- /dev/null
+++ b/src/jenkinscat/data_fetcher.clj
@@ -0,0 +1,40 @@
+(ns jenkinscat.data-fetcher)
+
+(require '[jenkinscat.config :as config])
+(require '[jenkinscat.server :as server])
+
+
+(defn minutes-to-seconds
+ "Converts minutes to seconds."
+ [minutes]
+ (* minutes 60))
+
+(defn seconds-to-ms
+ "Converts seconds to milliseconds."
+ [seconds]
+ (* seconds 1000))
+
+(defn compute-sleep-amount
+ [minutes]
+ (-> minutes
+ minutes-to-seconds
+ seconds-to-ms))
+
+(defn run-fetcher-in-a-loop
+ "Run the fetcher periodically. The sleep amount should containg time delay
+ in minutes."
+ [sleep-amount devel-version]
+ (let [ms-to-sleep (compute-sleep-amount sleep-amount)]
+ (while true
+ (do
+ (println "Generating data2.json")
+ (server/json-data-exporter)
+ (println "Done, sleeping for" sleep-amount " minutes")
+ (Thread/sleep ms-to-sleep)))))
+
+(defn run-fetcher
+ "Run the endless fetcher loop."
+ []
+ (println "Fetcher started in its own thread")
+ (run-fetcher-in-a-loop config/fetcher-sleep-amount config/devel-version))
+
More information about the docs-commits
mailing list