实时监测文件变动并运行脚本
2020-8-22 4:54:39
收藏:0
阅读:166
评论:1
我现在遇到了一个问题,需要一些解决方向。
我的程序在 Windows 机器上运行。在运行过程中,程序将以 JSON 格式将数据写入文件。当程序关闭时,它停止向数据文件写入数据,清理文件并关闭文件。
我需要在数据文件关闭或更改时触发一个脚本。
我尝试使用由运行中的程序触发的 lua 脚本来实现这一点,但由于当我的脚本执行时文件仍然在打开状态,所以无法访问文件。
因此,我正在尝试找出如何监视文件的变化。一旦文件发生更改/关闭,我只需要将文件复制到另一个位置即可。
我不知道哪种编程语言可以完成这个任务,但我猜 Python 可以做到。虽然我没有 Python 的经验,但我愿意学习以完成这个任务。我对 nodejs、JavaScript 和 Lua 有一些了解。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

编程语言并不是关键选择;请用您方便的语言。难点在于当文件被更改时如何让 Windows 进行报告。
操作系统是资源管理器;尝试监视任意更改的目标资源可能会对资源产生很大压力。如果您想以这种方式做,可以通过计划(cron)一行 shell 命令来查找自上次运行以来的任何更改。检查修改时间戳。如果文件最近被更改,那么触发您的脚本。
您不可以合理地运行持续的监视进程。这种能力太昂贵了,使操作系统原语变得无法实现,"busy loop" 检查也是如此。
如果您的用例要求每次更改都触发您的脚本,即使连续的更改只相隔几毫秒,那么我不知道您的问题有可行的解决方案。如果每隔一段时间(十分钟?)触发一次就可以满足您的需求,请检查修改时间,这应该足够好了。
最重要的是,处理这种情况的 "正确" 方法是您首先尝试的:将您的触发器构建到更新程序的设计中。没有这种协调,您的问题相当于入侵检测,在系统资源方面是不可取的。
您可以直接从您的
lua脚本中使用 LuaFileSystem package 检查文件的修改时间。attributes返回一个文件属性集合,包括最近的修改时间戳。