[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