mirror of
https://github.com/penpot/penpot.git
synced 2026-09-13 15:38:38 +00:00
✨ Add support for emit messages without waiting response on worker
This commit is contained in:
parent
255f5af2e3
commit
1d54fe2e24
@ -21,7 +21,6 @@
|
|||||||
:config {:public-uri cf/public-uri
|
:config {:public-uri cf/public-uri
|
||||||
:build-data cf/build-date
|
:build-data cf/build-date
|
||||||
:version cf/version}})
|
:version cf/version}})
|
||||||
|
|
||||||
(set! instance worker)))
|
(set! instance worker)))
|
||||||
|
|
||||||
(defn ask!
|
(defn ask!
|
||||||
@ -34,6 +33,16 @@
|
|||||||
(uw/ask! instance message transfer)
|
(uw/ask! instance message transfer)
|
||||||
(rx/empty))))
|
(rx/empty))))
|
||||||
|
|
||||||
|
(defn emit!
|
||||||
|
([message]
|
||||||
|
(if instance
|
||||||
|
(uw/emit! instance message)
|
||||||
|
(rx/empty)))
|
||||||
|
([message transfer]
|
||||||
|
(if instance
|
||||||
|
(uw/emit! instance message transfer)
|
||||||
|
(rx/empty))))
|
||||||
|
|
||||||
(defn ask-buffered!
|
(defn ask-buffered!
|
||||||
([message]
|
([message]
|
||||||
(if instance
|
(if instance
|
||||||
|
|||||||
@ -19,7 +19,7 @@
|
|||||||
([worker message]
|
([worker message]
|
||||||
(send-message! worker message nil))
|
(send-message! worker message nil))
|
||||||
|
|
||||||
([worker {sender-id :sender-id :as message} {:keys [many?] :or {many? false}}]
|
([worker {sender-id :sender-id :as message} {:keys [many? ignore-response?] :or {many? false ignore-response? false}}]
|
||||||
(let [take-messages
|
(let [take-messages
|
||||||
(fn [ob]
|
(fn [ob]
|
||||||
(if many?
|
(if many?
|
||||||
@ -34,11 +34,13 @@
|
|||||||
|
|
||||||
(if (some? instance)
|
(if (some? instance)
|
||||||
(do (.postMessage instance data transfer)
|
(do (.postMessage instance data transfer)
|
||||||
(->> (:stream worker)
|
(if (not ignore-response?)
|
||||||
(rx/filter #(= (:reply-to %) sender-id))
|
(->> (:stream worker)
|
||||||
(take-messages)
|
(rx/filter #(= (:reply-to %) sender-id))
|
||||||
(rx/filter (complement :dropped))
|
(take-messages)
|
||||||
(rx/map handle-response)))
|
(rx/filter (complement :dropped))
|
||||||
|
(rx/map handle-response))
|
||||||
|
(rx/empty)))
|
||||||
(rx/empty)))))
|
(rx/empty)))))
|
||||||
|
|
||||||
(defn ask!
|
(defn ask!
|
||||||
@ -51,6 +53,17 @@
|
|||||||
:payload message
|
:payload message
|
||||||
:transfer transfer})))
|
:transfer transfer})))
|
||||||
|
|
||||||
|
(defn emit!
|
||||||
|
([worker message]
|
||||||
|
(emit! worker message nil))
|
||||||
|
([worker message transfer]
|
||||||
|
(send-message!
|
||||||
|
worker
|
||||||
|
{:sender-id (uuid/next)
|
||||||
|
:payload message
|
||||||
|
:transfer transfer}
|
||||||
|
{:ignore-response? true})))
|
||||||
|
|
||||||
(defn ask-many!
|
(defn ask-many!
|
||||||
([worker message]
|
([worker message]
|
||||||
(ask-many! worker message nil))
|
(ask-many! worker message nil))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user