nodejs - 永远扫描目录以获取新文件

时间:2016-10-13 18:11:29

标签: node.js linux shell amazon-web-services express

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

以下是事物“流动”的简要情景:

  1. 用户通过http post(我有这个工作)上传文件
  2. 文件已经应用了一些验证(正确的字段和不是......)
  3. nodejs将文件写入linux盒子上的某个目录
  4. nodejs执行shell命令,该命令执行shell脚本。这个shell脚本选择刚刚编写的文件,通过Linux机器上的另一个第三方应用程序处理它。
  5. 一旦这个“其他”应用程序完成处理,它会将另一端的已处理文件吐出到某个目录。
  6. 返回nodejs,选择新文件并将数据处理到数据库中
  7. 所以我在这里需要帮助的是文件处理后的部分......在步骤5和6之间。最好的方法是什么?

    1. 我是否可以在nodejs中执行一些无限运行循环,如果该目录中存在文件,拾取和处理,然后删除,则每X秒搜索一次?
    2. OR

      1. 最好在Linux机器上设置一个执行该任务的cron作业?我需要一种方法让nodejs应用程序“知道”文件已准备好发送到数据库中。
      2. 如果我选择1,那么在节点js app中会是什么样子?有点像?

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

        如果选项2更好,我怎么能让nodejs app知道处理文件?也许只需将Express端点作为信号调出去查看目录?

        我已经完成了其他工作(数据库连接,文件读/写等)。我的大脑只是坚持试图理解如何或多或少地让这两个不同的应用程序通知另一个。

1 个答案:

答案 0 :(得分:0)

使用“chokidar”来做这件事!多棒的图书馆!极大地改进了nodejs附带的默认“fs.watch”。完美地完成了我需要做的事情。谢谢你提出建议!