Skip to content
This repository has been archived by the owner on Jun 12, 2024. It is now read-only.

Commit

Permalink
speed up get-version by excecuting queries parallely
Browse files Browse the repository at this point in the history
  • Loading branch information
minhtuannguyen committed Jun 29, 2016
1 parent 7bda93e commit 58b6041
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 8 deletions.
20 changes: 13 additions & 7 deletions src/leiningen/leinsync/deps.clj
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
(ns leiningen.leinsync.deps
(:require [leiningen.leinsync.table-pretty-print :as pp]
[ancient-clj.core :as ancient]
[leiningen.core.main :as m]))
[leiningen.core.main :as m])
(:import (java.util.concurrent Executors)))

(def different-marker "==> ")

Expand Down Expand Up @@ -41,18 +42,23 @@
(count)
(< 1)))

(defn mark-for-possible-update [get-version marker]
(defn mark-for-possible-update [last-version-map marker]
(fn [[k v]]
(let [last-version (get-version k)
(let [last-version (get last-version-map k)
deps-info {:name k :last-version last-version}]
(if (has-newer-version? v last-version)
(merge deps-info (zipmap (keys v) (map #(str marker %) (vals v))))
(merge deps-info v)))))

(defn parallel-get-version [deps]
(let [tasks (map #(future {% (last-version-of %)}) deps)]
(reduce merge (doall (pmap deref tasks)))))

(defn pretty-print-structure [enrich-version deps]
(->> deps
(seq)
(map (mark-for-possible-update enrich-version different-marker))))
(let [last-version-map (enrich-version (keys deps))]
(->> deps
(seq)
(map (mark-for-possible-update last-version-map different-marker)))))

(defn log-resouces-table [m]
(m/info "\n* List of dependencies")
Expand All @@ -64,5 +70,5 @@
(->> projects-desc
(deps->project)
(merge-deps)
(pretty-print-structure last-version-of)
(pretty-print-structure parallel-get-version)
(log-resouces-table)))
2 changes: 1 addition & 1 deletion test/leiningen/leinsync/deps_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
:dep-3 {:deps-project-1 :v-3}
:dep-4 {:deps-project-3 :v-4}
:dep-5 {:deps-project-1 :v-6, :deps-project-3 :v-2}}
(d/pretty-print-structure (fn [x] (get m x)))
(d/pretty-print-structure (fn [x] m))
(sort-by :name))))))

(deftest ^:unit has-newer-version?
Expand Down

0 comments on commit 58b6041

Please sign in to comment.