我正在尝试使用节点的watchFile功能实现从数据库到服务器的推送模型。现在,我正在从数据库中导出nfs4共享。服务器将挂载该共享。当数据库处理新数据时,它会触摸其导出位置中的文件。服务器看到文件的时间变化,并向客户端执行推送。
问题在于,服务器在执行后续轮询请求之前看不到正在更新的文件。这有效地使其成为拉动模型,而不是推动模型。如果我卸载共享服务器端并触摸mount文件夹中的文件,则watchFile可以正常运行,并且可以在默认的5007ms窗口内看到更改。
我的替代想法包括使用scp将文件从db推送到服务器,-看起来很笨拙,但是我已经对其进行了测试,并且watchFile可以使用它。我还没有走cifs路线。
我应该放弃依赖nfs4来与节点的watchFile()一起运行吗?如果没有,我应该如何调整/测试?哪些替代方法对您有效?
最佳答案
我在samba上也看到了同样的情况,其中在服务器上未触发监视。事实证明,底层通知取决于更改的来源,而不是您所期望的文件系统的基础。
scp和sftp应该可以正常工作,它们可以在我们使用的所有文件系统上运行。就我个人而言,即使您将来的数据库选择发生变化,我也将其作为一种更可靠的方法。