【问题标题】:File-Monitoring via Lua Script通过 Lua 脚本监控文件
【发布时间】:2016-09-27 05:05:12
【问题描述】:

晚上好,

我目前正在开发一种将机器创建的数据从 csv 表导入数据库的方法。 我的问题是,有没有办法用 Lua 对 csv 文件的变化做出反应。

文件以这种格式得到一行:

17162H,"801234500001",9/23/2016 12:33:30 PM,"INV"

每次扫描器完成扫描过程时,在旧行下添加,但没有直接连接到数据库,以触发脚本。

无论是通过不同的文件大小、文件夹大小(包含文件的文件夹)还是文件信息中的更改(例如上次打开的日期)检测到更改,但我无法打开并且由于性能原因,永久读取它。

这也是我第一次在这里提问,很抱歉我的笨拙方式,我会随着时间的推移努力提高自己。

【问题讨论】:

  • 您已经获得了哪些代码,该脚本会永久运行还是有时会启动?
  • 一些代码会有所帮助,以及您使用的是什么平台。
  • 你真的需要这个实时吗?可能只是每 N 分钟轮询一次。此外,了解您的应用如何轮换此日志文件可能也很重要。
  • 库尔琴科的提示有效,谢谢,问题可以关闭(由于某种原因我不能这样做)
  • @ismalith 如果他的回答对您有帮助,请点击那个闪亮的绿色复选标记接受它。这有助于未来有类似问题的程序员找到他们的解决方案!

标签: csv lua eventtrigger file-monitoring


【解决方案1】:

看看linotify,它具有用于 inotify 的 lua 绑定,并且看起来应该可以解决问题,使用“修改”事件来触发您的脚本。

【讨论】:

    【解决方案2】:

    我在 spylog apllication 中使用基于 LibUV 的变体 用法:

    file_monitor(path_to_file, {eol = '\r?\n'}, function(line)
      ... 
    end)
    

    【讨论】:

      【解决方案3】:

      如果你需要在 Windows 上运行它,你可以使用winapi library,它支持file watchers。这是example 在我的一个项目中的使用方式;您需要致电winapi.sleep() 以便有时间触发检查。

      【讨论】:

      • 我在几年前测试过它。工作一段时间后它会崩溃。但从那以后我没有测试它
      • 我在 Win8 上使用了 watchers 并没有发现任何问题。我也有经常使用它的用户,他们没有报告任何问题。
      猜你喜欢
      • 2021-02-14
      • 2012-04-14
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 2019-04-21
      相关资源
      最近更新 更多