Improved performance in workers

This commit is contained in:
alonso.torres 2021-01-27 15:59:55 +01:00
parent 385c7274a3
commit 44eb961c27
3 changed files with 24 additions and 14 deletions

View file

@ -7,10 +7,13 @@
(ns app.worker.impl
(:require
[okulary.core :as l]
[app.util.transit :as t]))
[app.util.transit :as t]
[app.common.pages.changes :as ch]))
(enable-console-print!)
(defonce state (l/atom {:pages-index {}}))
;; --- Handler
(defmulti handler :cmd)
@ -24,15 +27,23 @@
message)
(defmethod handler :initialize-indices
[message]
[{:keys [data] :as message}]
(reset! state data)
(handler (-> message
(assoc :cmd :selection/initialize-index)))
(handler (-> message
(assoc :cmd :snaps/initialize-index))))
(defmethod handler :update-page-indices
[message]
(handler (-> message
(assoc :cmd :selection/update-index)))
(handler (-> message
(assoc :cmd :snaps/update-index))))
[{:keys [page-id changes] :as message}]
(swap! state ch/process-changes changes false)
(let [objects (get-in @state [:pages-index page-id :objects])
message (assoc message :objects objects)]
(handler (-> message
(assoc :cmd :selection/update-index)))
(handler (-> message
(assoc :cmd :snaps/update-index)))))