想知道对于我的情况,最好的方法是什么。目前正在运行一个运行Apache的Linux AWS实例,托管一个Nodejs应用程序。
下面是一个关于事物“流动”的简单场景:
用户通过http post上传文件(我有这个功能)
文件已应用了某些验证(正确的字段和其他内容…)
nodejs将文件写入linux上的某个目录
nodejs执行一个shell命令,该命令执行一个shell脚本。这个shell脚本接收刚刚编写的文件,以便通过Linux上的另一个第三方应用程序对其进行处理。
一旦这个“其他”应用程序处理完它,它就会在另一端的某个目录中吐出一个处理过的文件。
回到nodejs,获取新文件并将数据向下处理到数据库中
所以我需要帮助的是文件处理后的部分。。。在第5步和第6步之间。最好的办法是什么?
我可以做一些无限运行循环在NoDjs中搜索每X秒,如果文件存在于该目录,拿起和处理,然后删除?
或者
最好在linux上设置一个cron作业来执行这个任务?我需要一种方法让nodejs应用程序“知道”一个文件已经准备好发送到数据库。
如果我选择1,在node js应用程序中会是什么样子像这样的?

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

如果选项2更好,我如何让nodejs应用程序知道如何处理文件?也许只需要调用一个Express端点作为一个信号,出去查看目录?
我有其他一切工作(数据库连接,文件读/写等)。我的大脑只是停留在这一块,试图了解如何或多或少地让这两个不同的应用程序通知另一个。

最佳答案

最后用“chokidar”来做这个!多棒的图书馆啊!大大改进了nodejs附带的默认“fs.watch”。为我需要做的事做得很好。谢谢marekful的建议!

09-17 16:26
查看更多