|
14 | 14 | (s/def ::domain-event-name #{:ranging/succeeded}) |
15 | 15 | (s/def ::system-event-name #{:system/parsing-failed |
16 | 16 | :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}) |
18 | 22 |
|
19 | 23 | (s/def ::name (s/or :oms ::oms-event-name |
20 | 24 | :domain ::domain-event-name |
|
57 | 61 | (defmethod payload-type :ranging/succeeded [_] |
58 | 62 | (s/keys :req-un [::ranged-items])) |
59 | 63 |
|
| 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 | + |
60 | 70 | (defmethod payload-type :default [_] |
61 | 71 | (s/keys :req-un [::type])) |
62 | 72 | (s/def ::payload (s/multi-spec payload-type :type)) |
63 | 73 |
|
64 | 74 | (defmulti event-type :type) |
65 | 75 | (defmethod event-type :system [_] |
66 | 76 | (s/keys :req-un [::id ::name ::type ::level ::timestamp ::payload] |
67 | | - :opt-un [::parent-id])) |
| 77 | + :opt-un [::parent-id ::channel-id ::channel-name])) |
68 | 78 | (defmethod event-type :domain [_] |
69 | 79 | (s/keys :req-un [::id ::name ::type ::level ::timestamp |
70 | 80 | ::channel-id ::channel-name ::payload] |
|
122 | 132 | :channel-name channel-name |
123 | 133 | :level :error))) |
124 | 134 |
|
| 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 | + |
125 | 150 | (defn parsing-failed [parent-id message-type error-message] |
126 | 151 | {:pre [(s/assert uuid? parent-id) |
127 | 152 | (s/assert ::oms-message/type message-type) |
|
0 commit comments