【问题标题】:How do you constantly monitor the contents of a file in clojure?您如何在 clojure 中持续监控文件的内容?
【发布时间】:2015-04-02 14:07:46
【问题描述】:

我有一个 incanter 数据集,每次其他进程更改源 csv 文件时,我都想重新加载该数据集。换句话说,mydata_ incanter 数据集在我每次查看时都应该是最新的。如何在惯用的 clojure 中实现这一点?

(use 'incanter.io)
(def mydata_ (read-csv "./changingfile.csv"))

在某个时候,另一个进程更改了正在更改的文件.csv,如何确保 mydata_ 自动更新?这与仅仅在 clojure 中的现有数据结构中添加 watch 函数有点不同。

谢谢。

【问题讨论】:

  • 我相信惯用的 Clojure 会让您使用 refs/atomscore.async 在两个进程之间传递 。如果其中任何一个都不是一个选项,您应该考虑提供的答案之一here

标签: csv clojure


【解决方案1】:

在这里查看文件系统的好库:https://github.com/derekchiang/Clojure-Watch 可用于观看 csv 并可以将 mydata_ 设置为原子,或者任何使用 mydata 的东西都可以从 clojure-watches 回调中启动。

【讨论】:

    猜你喜欢
    • 2011-06-07
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多