gpt4 book ai didi

ubuntu - Clojure程序运行后无法完成

转载 作者:行者123 更新时间:2023-12-04 19:02:50 25 4
gpt4 key购买 nike

我的问题是执行我的 clojure 程序时出现的意外情况。

我使用 Ubuntu 14.04 x64、Lein 和 Clojure(都是最后一个版本)。
我已经完成了我的小项目(网络爬虫,只是为了学习 clojure)。
它有效,我确定('因为我已经在 repl 中运行它)。

好的,我正在尝试在终端中使用 lein 运行它(查看屏幕截图)。
它工作正常,然后打印耗时。
但是,它正在等待一些东西。那就是问题所在。程序无法停止,也无法将控制权返回给 ubuntu 的终端。我第一次面对它,我之前的所有项目都是自己编译的。现在唯一的方法是“Ctrl + C”。
在代码中,我使用“命令式”命令(doseq、do)、文件 i/o(带有打开的读取器/写入器)、代理(发送、等待)和“clj-http.client”来下载网页。它们是潜在的原因。

这是我的“主要”:

(defn crawl-bunch [depth]
(do
(send-off urls visit-urls)
(await urls)
(renew-urls)
(await urls)
(send-off urls mark-used-urls)
(await urls)
(dec depth)))

(defn crawl [depth]
(loop [i depth]
(if (= i 0)
(save-found-urls "out_urls.txt")
(recur (crawl-bunch i)))))

(defn -main [& args]
(time
(do
(file-to-urls "urls.txt")
(crawl 1))))

这是完整的源代码 - 近 100 个字符串 (/src/crawler/core.clj): https://github.com/ivanpetrov16130/crawler

请告诉我,如何解决?
感谢您的回答,请原谅我的语法、句法和逻辑错误。

Image is full of sorrow."

最佳答案

您需要运行 shutdown-agents以便代理使用的线程池关闭。

关于ubuntu - Clojure程序运行后无法完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31102977/

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