Added error handling to go blocks.
This commit is contained in:
parent
7d61caea52
commit
7684eb6506
|
@ -1,4 +1,4 @@
|
||||||
(defproject views "0.4.1"
|
(defproject views "0.4.2-SNAPSHOT"
|
||||||
:description "You underestimate the power of the SQL side"
|
:description "You underestimate the power of the SQL side"
|
||||||
|
|
||||||
:url "https://github.com/diligenceengine/views"
|
:url "https://github.com/diligenceengine/views"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
[views.db.load :refer [initial-view]]
|
[views.db.load :refer [initial-view]]
|
||||||
[views.db.util :refer [with-retry]]
|
[views.db.util :refer [with-retry]]
|
||||||
[clojure.tools.logging :refer [debug info warn error]]
|
[clojure.tools.logging :refer [debug info warn error]]
|
||||||
[clojure.core.async :refer [put! <! go thread]]
|
[clojure.core.async :refer [thread]]
|
||||||
[clojure.java.jdbc :as j]))
|
[clojure.java.jdbc :as j]))
|
||||||
|
|
||||||
(def default-ns :default-ns)
|
(def default-ns :default-ns)
|
||||||
|
|
|
@ -2,28 +2,40 @@
|
||||||
(:require
|
(:require
|
||||||
[views.subscribed-views :refer [subscribe-views unsubscribe-views disconnect]]
|
[views.subscribed-views :refer [subscribe-views unsubscribe-views disconnect]]
|
||||||
[clojure.core.async :refer [go go-loop chan pub sub unsub close! >! >!! <! <!! filter<]]
|
[clojure.core.async :refer [go go-loop chan pub sub unsub close! >! >!! <! <!! filter<]]
|
||||||
[clojure.tools.logging :refer [debug]]))
|
[clojure.stacktrace :refer [print-stack-trace]]
|
||||||
|
[clojure.tools.logging :refer [error debug]]))
|
||||||
|
|
||||||
|
(defn log-exception
|
||||||
|
"Takes a string and exception and logs it to error."
|
||||||
|
[s e]
|
||||||
|
(error s e (.getMessage e) (print-stack-trace e)))
|
||||||
|
|
||||||
(defn handle-subscriptions!
|
(defn handle-subscriptions!
|
||||||
[subscribed-views subscriptions]
|
[subscribed-views subscriptions]
|
||||||
(go (while true
|
(go (while true
|
||||||
(let [sub (<! subscriptions)]
|
(try
|
||||||
(debug "Subscribing (in router): " sub)
|
(let [sub (<! subscriptions)]
|
||||||
(subscribe-views subscribed-views sub)))))
|
(debug "Subscribing (in router): " sub)
|
||||||
|
(subscribe-views subscribed-views sub))
|
||||||
|
(catch Exception e (log-exception "when subscribing" e))))))
|
||||||
|
|
||||||
(defn handle-unsubscriptions!
|
(defn handle-unsubscriptions!
|
||||||
[subscribed-views unsubscriptions]
|
[subscribed-views unsubscriptions]
|
||||||
(go (while true
|
(go (while true
|
||||||
(let [unsub (<! unsubscriptions)]
|
(try
|
||||||
(debug "Unsubscribing (in router): " unsub)
|
(let [unsub (<! unsubscriptions)]
|
||||||
(unsubscribe-views subscribed-views unsub)))))
|
(debug "Unsubscribing (in router): " unsub)
|
||||||
|
(unsubscribe-views subscribed-views unsub))
|
||||||
|
(catch Exception e (log-exception "when unsubscribing" e))))))
|
||||||
|
|
||||||
(defn handle-disconnects!
|
(defn handle-disconnects!
|
||||||
[subscribed-views disconnects]
|
[subscribed-views disconnects]
|
||||||
(go (while true
|
(go (while true
|
||||||
(let [disc (<! disconnects)]
|
(try
|
||||||
(debug "Disconnecting (in router): " disc)
|
(let [disc (<! disconnects)]
|
||||||
(disconnect subscribed-views disc)))))
|
(debug "Disconnecting (in router): " disc)
|
||||||
|
(disconnect subscribed-views disc)
|
||||||
|
(catch Exception e (log-exception "disconnect" e)))))))
|
||||||
|
|
||||||
(defn init!
|
(defn init!
|
||||||
[{:keys [base-subscribed-views] :as conf} client-chan]
|
[{:keys [base-subscribed-views] :as conf} client-chan]
|
||||||
|
|
Loading…
Reference in a new issue