diff --git a/backend/src/app/srepl/main.clj b/backend/src/app/srepl/main.clj index 04f3b16a19..e7de3aac1f 100644 --- a/backend/src/app/srepl/main.clj +++ b/backend/src/app/srepl/main.clj @@ -555,8 +555,10 @@ [& {:keys [max-jobs rollback? max-chunks + chunk-size proc-fn] :or {max-chunks Long/MAX_VALUE + chunk-size 100 rollback? true} :as opts}] @@ -565,6 +567,13 @@ max-chunks (max max-chunks max-jobs) processed (atom 0) + opts (-> opts + (assoc :chunk-size chunk-size) + (dissoc :rollback?) + (dissoc :proc-fn) + (dissoc :max-jobs) + (dissoc :max-chunks)) + start-job (fn [jid] (l/dbg :hint "start job thread" :jid jid) @@ -587,6 +596,10 @@ :max-jobs max-jobs :max-chunks max-chunks) + (add-watch processed ::watch + (fn [_ _ _ v] + (l/dbg :hint "total chunks processed" :chunks v :items (* chunk-size v)))) + (try (let [jobs (->> (range max-jobs) (map (fn [jid] (px/fn->thread (partial start-job jid))))