Attempts solution of retrying transaction

This commit is contained in:
2023-03-30 06:27:04 -07:00
parent 5a6a43f183
commit f0603d922a
2 changed files with 38 additions and 13 deletions

View File

@@ -504,6 +504,19 @@
(:bank-account/numeric-code (bank-accounts a)))
:client_id client-id})))
(defn upsert-batch-impl
([batch ] (upsert-batch-impl batch 0))
([batch attempt]
(try
(dc/transact auto-ap.datomic/conn {:tx-data batch})
batch
(catch Exception e
(if (< attempt 10)
(do
(Thread/sleep (* attempt 1000))
(upsert-batch-impl batch (inc attempt)))
(throw e))))))
(defn reset-client+account+location+date
([] (reset-client+account+location+date (map first (dc/q '[:find ?c :where [?c :client/code]] (dc/db conn)))))
([clients]
@@ -532,13 +545,13 @@
(-> je :journal-entry/date)]})
(:journal-entry/line-items je))))
(partition-all 200)
(partition-all 500)
(s/->source)
(s/map (fn [batch]
(de/future
(dc/transact conn {:tx-data batch})
(upsert-batch-impl batch)
(count batch))))
(s/buffer 20)
(s/buffer 50)
(s/realize-each)
(s/consume (fn [batch-count]
(swap! so-far #(+ % batch-count))
@@ -694,13 +707,13 @@
(s/realize-each)
(s/mapcat (fn [x]
x))
(s/buffer 20)
(s/transform (partition-all 200))
(s/buffer 50)
(s/transform (partition-all 500))
(s/map (fn [batch]
(de/future
(dc/transact conn {:tx-data batch})
(upsert-batch-impl batch)
(count batch))))
(s/buffer 20)
(s/buffer 50)
(s/realize-each)
(s/consume (fn [batch-count]
(swap! so-far #(+ % batch-count))