Updated deps

This commit is contained in:
niten 2023-04-25 15:37:05 -07:00
parent 7359e4570b
commit f0d8f59cc1
4 changed files with 28 additions and 9 deletions

View File

@ -11,16 +11,16 @@
{
"lib": "org.fudo/milquetoast",
"url": "https://git.fudo.org/fudo-public/milquetoast.git",
"rev": "8f71590fd8d63a0a7ab45a46ae6a7a1eee99f16f",
"rev": "6c64dedc17f506f3190207bbe08eb1eb1edc7e01",
"git-dir": "https/git.fudo.org/fudo-public/milquetoast",
"hash": "sha256-DpaqFv4HwEncDjkD3wQHMB50MmWMR6Z42+j5itGdT44="
"hash": "sha256-46iTmkDHpoPuuN4cxIDL1pIKjyKfAF5/tUlz4ixLsbs="
},
{
"lib": "org.fudo/objectifier-client",
"url": "https://git.fudo.org/fudo-public/objectifier-client.git",
"rev": "d4b5ecc0f98aa8168ca3ef13e182c688591298ae",
"rev": "3b2bcd702f41f77625bc4dfb47f53a8b1507cd4c",
"git-dir": "https/git.fudo.org/fudo-public/objectifier-client",
"hash": "sha256-WVFG9yCKawBrEpNS0Bfdy+W3S5dBvlwJcfdMNJ1/rVM="
"hash": "sha256-MEjkPFCjgUSgVSkxWqJ0hcrnFwe2dYSTAKKCFoRHyos="
}
],
"mvn-deps": [

View File

@ -14,11 +14,11 @@
}
org.fudo/objectifier-client {
:git/url "https://git.fudo.org/fudo-public/objectifier-client.git"
:git/sha "d4b5ecc0f98aa8168ca3ef13e182c688591298ae"
:git/sha "3b2bcd702f41f77625bc4dfb47f53a8b1507cd4c"
}
org.fudo/milquetoast {
:git/url "https://git.fudo.org/fudo-public/milquetoast.git"
:git/sha "8f71590fd8d63a0a7ab45a46ae6a7a1eee99f16f"
:git/sha "6c64dedc17f506f3190207bbe08eb1eb1edc7e01"
}
}
}

View File

@ -98,7 +98,7 @@ in {
config = mkIf cfg.enable {
systemd.services.suanni-server = {
path = [ suanni-server ];
wantedBy = [ "default.target" ];
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
serviceConfig = {
DynamicUser = true;

View File

@ -4,7 +4,7 @@
[suanni.stoppable :refer [IStoppable stop!]]
[milquetoast.client :as mqtt]
[objectifier-client.core :as obj]
[clojure.core.async :as async :refer [<! >! go-loop]]
[clojure.core.async :as async :refer [<! >! go-loop <!! timeout]]
[clojure.string :as str])
(:import java.time.Instant))
@ -29,6 +29,24 @@
ISuanNiServer
(object-channel [_] obj-chan))
(defn- retry-attempt [verbose f]
(let [wrap-attempt (fn []
(try [true (f)]
(catch RuntimeException e
(do (when verbose
(println (format "exception: %s"
(.toString e))))
[false e]))))
max-wait (* 5 60 1000)] ;; wait at most 5 minutes
(loop [[success? result] (wrap-attempt)
wait-ms 1000]
(if success?
result
(do (when verbose
(println (format "attempt failed, sleeping %s ms" wait-ms)))
(<!! (timeout wait-ms))
(recur (wrap-attempt) (min (* wait-ms 1.25) max-wait)))))))
(defn start!
[& {:keys [listen-host
listen-port
@ -69,7 +87,8 @@
(println "stopping image listener")
(async/close! obj-chan))
(let [{:keys [location camera-id snapshot time]} image-data
summary (obj/get-summary! obj-client snapshot)]
summary (retry-attempt verbose
#(obj/get-summary! obj-client snapshot))]
(when verbose
(println (str "detected "
(count (:objects summary))