Skip to content

Instantly share code, notes, and snippets.

@senyorjou
Created July 17, 2021 12:29
Show Gist options
  • Save senyorjou/344053bf3c12c35701dbbd211ca07cbf to your computer and use it in GitHub Desktop.
Save senyorjou/344053bf3c12c35701dbbd211ca07cbf to your computer and use it in GitHub Desktop.
(defn handle-error [url status error]
(println (format "Error getting %s" url))
(println (format "Status returned: %d" status))
(println (format "Error: %s" error)))
(defn process-response [url headers body]
(println (format "Getting URL %s" url))
(println (format "Last modified: %s" (:last-modified headers)))
(println (format "Body is: %d bytes long" (count body)))
url)
(defn callback-wiki [url]
(http/get url
(fn [{:keys [status headers body error]}]
(if error
(handle-error url status error)
(process-response url headers body)))))
(defn pages-list [start end]
(map #(format "https://en.wikipedia.org/wiki/%d" %) (range start end)))
(defn -main []
(let [futures (doall (map callback-wiki (pages-list 0 5)))]
(doseq [resp futures]
(println (format "Processed: %s" @resp)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment