Skip to content

Commit 9fdf64e

Browse files
committed
add events
1 parent 68acb1c commit 9fdf64e

File tree

3 files changed

+46
-14
lines changed

3 files changed

+46
-14
lines changed

clojure/wheel/src/wheel/infra/cron/job/core.clj

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
[clojurewerkz.quartzite.scheduler :as qs]
55
[clojurewerkz.quartzite.schedule.cron :as qsc]
66
[clojurewerkz.quartzite.triggers :as qt]
7-
[wheel.infra.config :as config]))
7+
[wheel.infra.config :as config]
8+
[wheel.middleware.event :as event]
9+
[wheel.infra.log :as log]))
810

911
(defmulti jobtype :type)
1012

@@ -26,11 +28,19 @@
2628
(qsc/cron-schedule expression)))))
2729

2830
(defn handle [channel-fn ctx]
29-
(let [{:strs [channel-config cron-job-config]} (qc/from-job-data ctx)]
30-
(try
31-
(channel-fn (:channel-id cron-job-config) channel-config)
32-
(catch Throwable ex
33-
(prn "==>" ex)))))
31+
(try
32+
(let [{:strs [channel-config cron-job-config]} (qc/from-job-data ctx)
33+
{:keys [channel-id type]} cron-job-config
34+
{:keys [channel-name]} channel-config
35+
cron-started-event (event/cron type channel-id channel-name)]
36+
(try
37+
(channel-fn channel-id channel-config)
38+
(log/write! cron-started-event)
39+
(catch Throwable ex
40+
(log/write-all! [cron-started-event
41+
(event/cron type channel-id channel-name ex)]))))
42+
(catch Throwable t
43+
(prn "~~>" t))))
3444

3545
(defn schedule [scheduler {:keys [channel-id]
3646
:as cron-job-config}]

clojure/wheel/src/wheel/marketplace/tata_cliq/core.clj

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@
2626
(event/processing-failed ex id :ranging channel-id channel-name))))
2727

2828
(defmethod channel/allocate-order :tata-cliq [channel-id channel-config]
29-
(try
30-
(->> (tata-cliq/new-orders channel-config channel-id)
31-
(map tata-cliq-order/to-oms-order)
32-
(run! oms/allocate-order))
33-
(catch Throwable e
34-
(prn e))))
29+
(->> (tata-cliq/new-orders channel-config channel-id)
30+
(map tata-cliq-order/to-oms-order)
31+
(run! oms/allocate-order)))

clojure/wheel/src/wheel/middleware/event.clj

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@
1414
(s/def ::domain-event-name #{:ranging/succeeded})
1515
(s/def ::system-event-name #{:system/parsing-failed
1616
:system/channel-not-found
17-
:system/processing-failed})
17+
:system/processing-failed
18+
:system.cron/started
19+
:system.cron/failed})
20+
21+
(s/def ::job-type #{:allocate-order})
1822

1923
(s/def ::name (s/or :oms ::oms-event-name
2024
:domain ::domain-event-name
@@ -57,14 +61,20 @@
5761
(defmethod payload-type :ranging/succeeded [_]
5862
(s/keys :req-un [::ranged-items]))
5963

64+
(defmethod payload-type :system.cron/started [_]
65+
(s/keys :req-un [::job-type]))
66+
67+
(defmethod payload-type :system.cron/failed [_]
68+
(s/keys :req-un [::job-type ::error-message ::stacktrace]))
69+
6070
(defmethod payload-type :default [_]
6171
(s/keys :req-un [::type]))
6272
(s/def ::payload (s/multi-spec payload-type :type))
6373

6474
(defmulti event-type :type)
6575
(defmethod event-type :system [_]
6676
(s/keys :req-un [::id ::name ::type ::level ::timestamp ::payload]
67-
:opt-un [::parent-id]))
77+
:opt-un [::parent-id ::channel-id ::channel-name]))
6878
(defmethod event-type :domain [_]
6979
(s/keys :req-un [::id ::name ::type ::level ::timestamp
7080
::channel-id ::channel-name ::payload]
@@ -122,6 +132,21 @@
122132
:channel-name channel-name
123133
:level :error)))
124134

135+
(defn cron
136+
([job-type channel-id channel-name]
137+
(event :system.cron/started {:job-type job-type}
138+
:channel-id channel-id
139+
:channel-name channel-name
140+
:type :system
141+
:level :info))
142+
([job-type channel-id channel-name ex]
143+
(event :system.cron/failed
144+
(assoc (ex->map ex) :job-type job-type)
145+
:channel-id channel-id
146+
:channel-name channel-name
147+
:type :system
148+
:level :error)))
149+
125150
(defn parsing-failed [parent-id message-type error-message]
126151
{:pre [(s/assert uuid? parent-id)
127152
(s/assert ::oms-message/type message-type)

0 commit comments

Comments
 (0)