♻️ Internal directory refactor.

Make common as first-class module.
This commit is contained in:
Andrey Antukh 2021-05-28 13:50:42 +02:00 committed by Andrés Moya
parent 6a2e45988f
commit 548664f6ce
86 changed files with 801 additions and 908 deletions

View file

@ -163,7 +163,7 @@
;; when connection is closed
(mtx-aconn :dec)
(mtx-sessions :observe (/ (inst-ms (dt/duration-between created-at (dt/now))) 1000.0))
(mtx-sessions :observe (/ (inst-ms (dt/diff created-at (dt/now))) 1000.0))
;; close subscription
(a/close! sub-ch))))

View file

@ -10,13 +10,14 @@
[clojure.spec.alpha :as s]
[cuerdas.core :as str])
(:import
java.time.Instant
java.time.Duration
java.util.Date
java.time.ZonedDateTime
java.time.Instant
java.time.OffsetDateTime
java.time.ZoneId
java.time.ZonedDateTime
java.time.format.DateTimeFormatter
java.time.temporal.TemporalAmount
java.util.Date
org.apache.logging.log4j.core.util.CronExpression))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -54,28 +55,37 @@
(obj->duration ms-or-obj)))
(defn duration-between
{:deprecated true}
[t1 t2]
(Duration/between t1 t2))
(letfn [(conformer [v]
(cond
(duration? v) v
(defn diff
[t1 t2]
(Duration/between t1 t2))
(string? v)
(try
(duration v)
(catch java.time.format.DateTimeParseException _e
::s/invalid))
(s/def ::duration
(s/conformer
(fn [v]
(cond
(duration? v) v
:else
::s/invalid))
(unformer [v]
(subs (str v) 2))]
(s/def ::duration (s/conformer conformer unformer)))
(string? v)
(try
(duration v)
(catch java.time.format.DateTimeParseException _e
::s/invalid))
:else
::s/invalid))
(fn [v]
(subs (str v) 2))))
(extend-protocol clojure.core/Inst
java.time.Duration
(inst-ms* [v] (.toMillis ^Duration v)))
(inst-ms* [v] (.toMillis ^Duration v))
OffsetDateTime
(inst-ms* [v] (.toEpochMilli (.toInstant ^OffsetDateTime v))))
(defmethod print-method Duration
[mv ^java.io.Writer writer]

View file

@ -442,7 +442,7 @@
(s/assert dt/cron? cron)
(let [now (dt/now)
next (dt/next-valid-instant-from cron now)]
(inst-ms (dt/duration-between now next))))
(inst-ms (dt/diff now next))))
(defn- schedule-task
[{:keys [scheduler] :as cfg} {:keys [cron] :as task}]