From 6e2acc0af1f9ba478b4a82328ab48bc5eee40380 Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Wed, 22 Apr 2026 17:54:53 +0800 Subject: [PATCH] enhance: no need to block waiting previous graph server down --- src/electron/electron/db_worker.cljs | 2 +- src/main/frontend/handler/events.cljs | 18 +++++++++++------- src/main/frontend/handler/export.cljs | 3 ++- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/electron/electron/db_worker.cljs b/src/electron/electron/db_worker.cljs index 2d8c0852d6..5c35c1d2ab 100644 --- a/src/electron/electron/db_worker.cljs +++ b/src/electron/electron/db_worker.cljs @@ -102,7 +102,7 @@ [{:keys [state start-daemon! stop-daemon! runtime-ready?] :as manager} repo window-id] (p/let [current-repo (get-in (ensure-state @state) [:window->repo window-id]) _ (when (and current-repo (not= current-repo repo)) - (ensure-window-stopped! manager window-id))] + (js/setTimeout #(ensure-window-stopped! manager window-id) 0))] (if-let [entry (get-in (ensure-state @state) [:repos repo])] (p/let [runtime (:runtime entry) ready? (runtime-ready? runtime)] diff --git a/src/main/frontend/handler/events.cljs b/src/main/frontend/handler/events.cljs index 32072b6f9b..1891fa40b6 100644 --- a/src/main/frontend/handler/events.cljs +++ b/src/main/frontend/handler/events.cljs @@ -48,7 +48,8 @@ [logseq.api.plugin :as plugin-api] [logseq.db.frontend.schema :as db-schema] [logseq.shui.ui :as shui] - [promesa.core :as p])) + [promesa.core :as p] + [cljs-time.core :as t])) ;; TODO: should we move all events here? @@ -121,12 +122,15 @@ (search-plugin/call-service! service "search:rebuildBlocksIndice" {})))))))) (defmethod handle :graph/switch [[_ graph opts]] - (p/do! - (export/cancel-db-backup!) - (state/set-state! :db/async-queries {}) - (st/refresh!) - (graph-switch-on-persisted graph opts) - (export/backup-db-graph (state/get-current-repo)))) + (let [t1 (t/now)] + (p/do! + (export/cancel-db-backup!) + (state/set-state! :db/async-queries {}) + (st/refresh!) + (graph-switch-on-persisted graph opts) + (export/backup-db-graph (state/get-current-repo)) + (let [t2 (t/now)] + (log/info ::graph-switch-spent (- t2 t1)))))) (defmethod handle :graph/open-new-window [[_ev target-repo]] (ui-handler/open-new-window-or-tab! target-repo)) diff --git a/src/main/frontend/handler/export.cljs b/src/main/frontend/handler/export.cljs index 3fd8241311..7702851cc6 100644 --- a/src/main/frontend/handler/export.cljs +++ b/src/main/frontend/handler/export.cljs @@ -214,7 +214,8 @@ (defn backup-db-graph [repo] - (when-not (util/capacitor?) + (when (and util/web-platform? + (not (util/capacitor?))) (web-backup-db-graph repo))) (defonce *backup-interval (atom nil))