gpt4 book ai didi

node.js - nodejs - 永远扫描目录以查找新文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:41:33 26 4
gpt4 key购买 nike

想知道适合我的情况的最佳方法是什么。目前正在运行一个运行 Apache 的 Linux AWS 实例,托管一个 Nodejs 应用程序。

这是事物“流动”的简要场景:

  1. 用户通过 http post 上传文件(我有这个工作)
  2. 文件应用了一些验证(正确的字段以及不正确的字段..)
  3. nodejs 将文件写入 linux 机器上的某个目录
  4. nodejs 执行shell 命令,该命令执行shell 脚本。这个 shell 脚本获取刚刚编写的文件,通过 Linux 机器上的另一个第 3 方应用程序处理它。
  5. 一旦这个“其他”应用程序完成处理它,它就会将另一端的已处理文件吐出到某个目录。
  6. 回到 nodejs,获取新文件并将数据处理到数据库中

所以我在这里需要帮助的是文件处理后的部分...在第 5 步和第 6 步之间。解决这个问题的最佳方法是什么?

  1. 我可以在 nodejs 中做一些无限运行循环,每隔 X 秒搜索该目录中是否存在文件,获取并处理,然后删除吗?

  1. 最好在执行该任务的 linux 机器上设置一个 cron 作业?我需要一种方法让 nodejs 应用程序“知道”文件已准备好发送到数据库。

如果我选择选项 1,它在 Node js 应用程序中会是什么样子?像什么?

while(true){ //forever loop
//do stuff
process.sleep(30 seconds)
}

如果选项 2 更好,我怎样才能让 nodejs 应用程序知道处理文件?也许只是调用一个 Express 端点作为出去查看目录的信号?

我的其他一切都正常工作(数据库连接、文件读/写等...)。我的大脑只是停留在试图理解如何或多或少地让这两个不同的应用程序通知另一个应用程序上。

最佳答案

最终使用“chokidar”来做到这一点!多么棒的图书馆啊!大大改进了 nodejs 附带的默认“fs.watch”。完美地完成了我需要做的事情。感谢 marekful 的建议!

关于node.js - nodejs - 永远扫描目录以查找新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028103/

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