gpt4 book ai didi

clojure - Leiningen uberjar "empty"运行时间

转载 作者:行者123 更新时间:2023-12-04 15:36:40 27 4
gpt4 key购买 nike

使用 leiningen 创建 uberjar 并使用 java -jar foo-uberjar.jar 运行该 jar 后程序运行良好,最后一行代码执行得相当快,但程序在关闭前挂了大约一分钟。这是什么原因?

(ns redditwallpaper.core
(:gen-class)
(:require [clojure.contrib.duck-streams :as duck]
[clojure.java [io :as io] [shell :as shell]]
[clojure.string :as string]
[clojure.contrib.json :as json])
(:import (java.util Random)))

(defn filename [uri]
(last (string/split uri #"/")))
(defn over_18 [x]
(:over_18 x))
(defn posts [x]
(map :data (get-in x [:data :children])))
(defn plain-image [x]
(re-find #"(.jpg|.png)$" (:url x)))
(def url "http://www.reddit.com/r/wallpaper.json")
(def wallpaperjson (json/read-json (slurp url)))
(defn copy [uri fname]
(with-open [in (io/input-stream uri)
out (io/output-stream fname)]
(.write out (duck/to-byte-array in))))
(defn randrange [n]
(.nextInt (Random.) n))
(defn randitem [xs]
(let [n (count xs)]
(nth xs (randrange n))))
(defn set-background [file]
(shell/sh "feh" "--bg-scale" file))
(defn -main [& args]
(let [posts (posts wallpaperjson)
safe (filter (complement over_18) posts)
images (filter plain-image safe)
image (:url (randitem images))
fname (filename image)]
(do
(println (format "Downloading '%s'" image))
(copy image fname)
(println (format "Setting background image to '%s'" fname))
(set-background fname)
(println "Done"))))
java -jar redditwallpaper-0.0.1-standalone.jar 2.71s user 0.34s system 4% cpu 1:03.15 total

最佳答案

尝试添加,

(shutdown-agents)

当您准备退出时。

关于clojure - Leiningen uberjar "empty"运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7173376/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com