🐛 Process thumbnail creation in serie (less resource usage).

This commit is contained in:
Andrey Antukh 2020-01-27 16:38:43 +01:00
parent 121d300cf7
commit aaa8bfe67d
3 changed files with 8 additions and 7 deletions

View file

@ -79,7 +79,7 @@
(defn populate-thumbnail (defn populate-thumbnail
[entry {:keys [src dst] :as opts}] [entry {:keys [src dst] :as opts}]
{:pre [(map? entry)]} (assert (map? entry))
(let [src (if (vector? src) src [src]) (let [src (if (vector? src) src [src])
dst (if (vector? dst) dst [dst]) dst (if (vector? dst) dst [dst])
src (get-in entry src)] src (get-in entry src)]
@ -93,8 +93,8 @@
(defn populate-urls (defn populate-urls
[entry storage src dst] [entry storage src dst]
{:pre [(map? entry) (assert (map? entry))
(st/storage? storage)]} (assert (st/storage? storage))
(let [src (if (vector? src) src [src]) (let [src (if (vector? src) src [src])
dst (if (vector? dst) dst [dst]) dst (if (vector? dst) dst [dst])
value (get-in entry src)] value (get-in entry src)]

View file

@ -32,8 +32,8 @@
(defn populate-thumbnail (defn populate-thumbnail
[row] [row]
(let [opts +thumbnail-options+] (let [opts +thumbnail-options+]
(-> (px/submit! #(images/populate-thumbnails row opts)) (-> (p/promise row)
(su/handle-on-context)))) (p/then (vc/wrap-blocking #(images/populate-thumbnail % opts))))))
(defn populate-thumbnails (defn populate-thumbnails
[rows] [rows]

View file

@ -71,12 +71,13 @@
(.complete ^Promise prm (apply f args)) (.complete ^Promise prm (apply f args))
(catch Throwable e (catch Throwable e
(.fail ^Promise prm e))))) (.fail ^Promise prm e)))))
false true
(reify Handler (reify Handler
(handle [_ ar] (handle [_ ar]
(if (.failed ^AsyncResult ar) (if (.failed ^AsyncResult ar)
(p/reject! d (.cause ^AsyncResult ar)) (p/reject! d (.cause ^AsyncResult ar))
(p/resolve! d (.result ^AsyncResult ar))))))))))) (p/resolve! d (.result ^AsyncResult ar))))))
d)))))
(defn handle-on-context (defn handle-on-context
"Attaches the context (current if not explicitly provided) to the "Attaches the context (current if not explicitly provided) to the