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:
2026-03-08 15:54:50 +01:00
co-authored by Claude Opus 4.6
parent 793c63927c
commit 130815e32f
3 changed files with 35 additions and 24 deletions
+4 -2
View File
@@ -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"]}}
+9 -4
View File
@@ -136,8 +136,13 @@
(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")
(do (log/info "Strike ticker disabled")
{:running? (atom false)
:future nil
:latest-rates (atom nil)})
(do (log/info "Starting Strike ticker poller")
(let [client (HttpClient/newHttpClient) (let [client (HttpClient/newHttpClient)
running? (atom true) running? (atom true)
latest-rates (atom nil) latest-rates (atom nil)
@@ -145,10 +150,10 @@
fut (start-poll-loop! client api-key query-fn running? latest-rates sats-eur-amount fee-cache)] fut (start-poll-loop! client api-key query-fn running? latest-rates sats-eur-amount fee-cache)]
{:running? running? {:running? running?
:future fut :future fut
:latest-rates latest-rates})) :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)))
+7 -3
View File
@@ -71,8 +71,12 @@
(.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")
(do (log/info "Binance WebSocket disabled")
{:state (atom {:running? false})
:latest-price (atom nil)})
(do (log/info "Starting Binance WebSocket listener:" uri)
(let [latest-price (atom nil) (let [latest-price (atom nil)
state (atom {:running? true state (atom {:running? true
:last-write 0 :last-write 0
@@ -81,7 +85,7 @@
ws (connect! uri query-fn state latest-price)] ws (connect! uri query-fn state latest-price)]
(swap! state assoc :ws ws) (swap! state assoc :ws ws)
{:state state {:state state
:latest-price latest-price})) :latest-price latest-price}))))
(defmethod ig/halt-key! :ws/binance (defmethod ig/halt-key! :ws/binance
[_ {:keys [state]}] [_ {:keys [state]}]