Improve tasks reporting.

This commit is contained in:
Andrey Antukh 2020-02-06 09:19:42 +01:00
parent e2d4d121d8
commit 4f8e427db9

View file

@ -47,7 +47,7 @@
(defn- reschedule (defn- reschedule
[conn task error] [conn task error]
(let [explain (string-strack-trace error) (let [explain (ex-message error)
sqlv [sql:mark-as-retry explain (:id task)]] sqlv [sql:mark-as-retry explain (:id task)]]
(-> (db/query-one conn sqlv) (-> (db/query-one conn sqlv)
(p/then' (constantly nil))))) (p/then' (constantly nil)))))
@ -61,8 +61,8 @@
(defn- mark-as-failed (defn- mark-as-failed
[conn task error] [conn task error]
(let [error (string-strack-trace error) (let [explain (ex-message error)
sqlv [sql:mark-as-failed error (:id task)]] sqlv [sql:mark-as-failed explain (:id task)]]
(-> (db/query-one conn sqlv) (-> (db/query-one conn sqlv)
(p/then' (constantly nil))))) (p/then' (constantly nil)))))
@ -117,7 +117,8 @@
(p/then decode-task-row) (p/then decode-task-row)
(p/then (fn [item] (p/then (fn [item]
(when item (when item
(log/debug "Execute task " (:name item)) (log/info "Execute task" (:name item)
"with props" (pr-str (:props item)))
(-> (p/do! (handle-task tasks item)) (-> (p/do! (handle-task tasks item))
(p/handle (fn [v e] (p/handle (fn [v e]
(if e (if e
@ -153,7 +154,7 @@
[ctx {:keys [tasks] :as options}] [ctx {:keys [tasks] :as options}]
(vt/schedule! ctx (assoc options (vt/schedule! ctx (assoc options
::vt/fn #'event-loop-handler ::vt/fn #'event-loop-handler
::vt/delay 3000 ::vt/delay 5000
::vt/repeat true))) ::vt/repeat true)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -273,7 +274,9 @@
;; --- Schedule API ;; --- Schedule API
(s/def ::name ::us/string) (s/def ::name ::us/string)
(s/def ::delay ::us/integer) (s/def ::delay
(s/or :int ::us/integer
:duration tm/duration?))
(s/def ::queue ::us/string) (s/def ::queue ::us/string)
(s/def ::task-options (s/def ::task-options
(s/keys :req-un [::name] (s/keys :req-un [::name]
@ -284,8 +287,11 @@
:or {delay 0 props {} queue "default"} :or {delay 0 props {} queue "default"}
:as options}] :as options}]
(us/verify ::task-options options) (us/verify ::task-options options)
(let [duration (-> (tm/duration delay) (let [duration (tm/duration delay)
(duration->pginterval)) pginterval (duration->pginterval duration)
props (blob/encode props)] props (blob/encode props)]
(-> (db/query-one conn [sql:insert-new-task name props queue duration]) (log/info "Schedule task" name
;; "with props" (pr-str props)
"to be executed in" (str duration))
(-> (db/query-one conn [sql:insert-new-task name props queue pginterval])
(p/then' (fn [task] (:id task)))))) (p/then' (fn [task] (:id task))))))