Add BINANCE_ENABLED and STRIKE_ENABLED env flags
Skip live WebSocket/API connections when set to false. Defaults to true so Docker keeps fetching. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -52,7 +52,8 @@
|
|||||||
|
|
||||||
:ws/binance
|
:ws/binance
|
||||||
{:query-fn #ig/ref :db.sql/query-fn
|
{:query-fn #ig/ref :db.sql/query-fn
|
||||||
:uri "wss://stream.binance.com:9443/ws/btcusdt@trade"}
|
:uri "wss://stream.binance.com:9443/ws/btcusdt@trade"
|
||||||
|
:enabled? #or [#env BINANCE_ENABLED "true"]}
|
||||||
|
|
||||||
:kraken/ohlc
|
:kraken/ohlc
|
||||||
{:query-fn #ig/ref :db.sql/query-fn}
|
{:query-fn #ig/ref :db.sql/query-fn}
|
||||||
@@ -67,4 +68,5 @@
|
|||||||
:strike/ticker
|
:strike/ticker
|
||||||
{:query-fn #ig/ref :db.sql/query-fn
|
{:query-fn #ig/ref :db.sql/query-fn
|
||||||
:api-key #env STRIKE_API_KEY
|
:api-key #env STRIKE_API_KEY
|
||||||
:sats-eur-amount #or [#env SATS_EUR_AMOUNT "55"]}}
|
:sats-eur-amount #or [#env SATS_EUR_AMOUNT "55"]
|
||||||
|
:enabled? #or [#env STRIKE_ENABLED "true"]}}
|
||||||
|
|||||||
@@ -136,19 +136,24 @@
|
|||||||
(log/error e "Strike poll failed")))))))
|
(log/error e "Strike poll failed")))))))
|
||||||
|
|
||||||
(defmethod ig/init-key :strike/ticker
|
(defmethod ig/init-key :strike/ticker
|
||||||
[_ {:keys [query-fn api-key sats-eur-amount]}]
|
[_ {:keys [query-fn api-key sats-eur-amount enabled?] :or {enabled? "true"}}]
|
||||||
(log/info "Starting Strike ticker poller")
|
(if-not (= enabled? "true")
|
||||||
(let [client (HttpClient/newHttpClient)
|
(do (log/info "Strike ticker disabled")
|
||||||
running? (atom true)
|
{:running? (atom false)
|
||||||
latest-rates (atom nil)
|
:future nil
|
||||||
fee-cache (atom nil)
|
:latest-rates (atom nil)})
|
||||||
fut (start-poll-loop! client api-key query-fn running? latest-rates sats-eur-amount fee-cache)]
|
(do (log/info "Starting Strike ticker poller")
|
||||||
{:running? running?
|
(let [client (HttpClient/newHttpClient)
|
||||||
:future fut
|
running? (atom true)
|
||||||
:latest-rates latest-rates}))
|
latest-rates (atom nil)
|
||||||
|
fee-cache (atom nil)
|
||||||
|
fut (start-poll-loop! client api-key query-fn running? latest-rates sats-eur-amount fee-cache)]
|
||||||
|
{:running? running?
|
||||||
|
:future fut
|
||||||
|
:latest-rates latest-rates}))))
|
||||||
|
|
||||||
(defmethod ig/halt-key! :strike/ticker
|
(defmethod ig/halt-key! :strike/ticker
|
||||||
[_ {:keys [running? future]}]
|
[_ {:keys [running? future]}]
|
||||||
(log/info "Stopping Strike ticker poller")
|
(log/info "Stopping Strike ticker poller")
|
||||||
(reset! running? false)
|
(reset! running? false)
|
||||||
(future-cancel future))
|
(when future (future-cancel future)))
|
||||||
|
|||||||
@@ -71,17 +71,21 @@
|
|||||||
(.join))))
|
(.join))))
|
||||||
|
|
||||||
(defmethod ig/init-key :ws/binance
|
(defmethod ig/init-key :ws/binance
|
||||||
[_ {:keys [query-fn uri]}]
|
[_ {:keys [query-fn uri enabled?] :or {enabled? "true"}}]
|
||||||
(log/info "Starting Binance WebSocket listener:" uri)
|
(if-not (= enabled? "true")
|
||||||
(let [latest-price (atom nil)
|
(do (log/info "Binance WebSocket disabled")
|
||||||
state (atom {:running? true
|
{:state (atom {:running? false})
|
||||||
:last-write 0
|
:latest-price (atom nil)})
|
||||||
:buffer (StringBuilder.)
|
(do (log/info "Starting Binance WebSocket listener:" uri)
|
||||||
:ws nil})
|
(let [latest-price (atom nil)
|
||||||
ws (connect! uri query-fn state latest-price)]
|
state (atom {:running? true
|
||||||
(swap! state assoc :ws ws)
|
:last-write 0
|
||||||
{:state state
|
:buffer (StringBuilder.)
|
||||||
:latest-price latest-price}))
|
:ws nil})
|
||||||
|
ws (connect! uri query-fn state latest-price)]
|
||||||
|
(swap! state assoc :ws ws)
|
||||||
|
{:state state
|
||||||
|
:latest-price latest-price}))))
|
||||||
|
|
||||||
(defmethod ig/halt-key! :ws/binance
|
(defmethod ig/halt-key! :ws/binance
|
||||||
[_ {:keys [state]}]
|
[_ {:keys [state]}]
|
||||||
|
|||||||
Reference in New Issue
Block a user