move actual view refresh processing to new fn to make testing easier
This commit is contained in:
parent
c31a896bd0
commit
1c47d4ca67
|
@ -243,16 +243,8 @@
|
||||||
[last-update min-refresh-interval]
|
[last-update min-refresh-interval]
|
||||||
(Thread/sleep (max 0 (- min-refresh-interval (- (System/currentTimeMillis) last-update)))))
|
(Thread/sleep (max 0 (- min-refresh-interval (- (System/currentTimeMillis) last-update)))))
|
||||||
|
|
||||||
(defn refresh-worker-thread
|
(defn do-view-refresh!
|
||||||
"Returns a refresh worker thread function. A 'refresh worker' continually waits for
|
[{:keys [namespace view-id parameters] :as view-sig}]
|
||||||
refresh requests and when there is one, handles it by running the view, getting the view
|
|
||||||
data and then sending it out to all the view's subscribers. "
|
|
||||||
[]
|
|
||||||
(let [^ArrayBlockingQueue refresh-queue (:refresh-queue @view-system)]
|
|
||||||
(fn []
|
|
||||||
(try
|
|
||||||
(when-let [{:keys [namespace view-id parameters] :as view-sig} (.poll refresh-queue 60 TimeUnit/SECONDS)]
|
|
||||||
(trace "worker running refresh for" view-sig)
|
|
||||||
(if (collect-stats?) (swap! statistics update-in [:refreshes] inc))
|
(if (collect-stats?) (swap! statistics update-in [:refreshes] inc))
|
||||||
(try
|
(try
|
||||||
(let [view (get-in @view-system [:views view-id])
|
(let [view (get-in @view-system [:views view-id])
|
||||||
|
@ -264,6 +256,18 @@
|
||||||
(swap! view-system assoc-in [:hashes view-sig] hdata)))
|
(swap! view-system assoc-in [:hashes view-sig] hdata)))
|
||||||
(catch Exception e
|
(catch Exception e
|
||||||
(error e "error refreshing:" namespace view-id parameters))))
|
(error e "error refreshing:" namespace view-id parameters))))
|
||||||
|
|
||||||
|
(defn refresh-worker-thread
|
||||||
|
"Returns a refresh worker thread function. A 'refresh worker' continually waits for
|
||||||
|
refresh requests and when there is one, handles it by running the view, getting the view
|
||||||
|
data and then sending it out to all the view's subscribers. "
|
||||||
|
[]
|
||||||
|
(let [^ArrayBlockingQueue refresh-queue (:refresh-queue @view-system)]
|
||||||
|
(fn []
|
||||||
|
(try
|
||||||
|
(when-let [view-sig (.poll refresh-queue 60 TimeUnit/SECONDS)]
|
||||||
|
(trace "worker running refresh for" view-sig)
|
||||||
|
(do-view-refresh! view-sig))
|
||||||
(catch InterruptedException e))
|
(catch InterruptedException e))
|
||||||
(if-not (:stop-workers? @view-system)
|
(if-not (:stop-workers? @view-system)
|
||||||
(recur)
|
(recur)
|
||||||
|
|
Loading…
Reference in a new issue