在 Rails 应用程序中通过 SFTP 监控远程文件夹
正如标题所示,我需要通过 SFTP 连接监视远程文件夹中的新文件。
我设置了一个守护进程来打开连接,如果它找到任何文件,那么它会检索其内容,如果没有,那么它会休眠 5 秒钟。这工作正常,CPU 使用率仅徘徊在 4% 左右。有没有更好的方法来做到这一点?无限期地保持这样的连接是否不好?
As the title says, I need to monitor a remote folder for new files through a SFTP connection.
I setup a daemon process that opens a connection and if it finds any files then it retrieves their contents and if it doesn't then it sleeps for 5 seconds. This works fine it just hovers around 4% CPU usage. Is there a better way to do this and is it bad to keep a connection like this open indefinitely?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
考虑到目前的情况,这可能是你能做的最好的事情。当监视的目录变得更大时,您的守护进程可能会运行得更慢并消耗更多资源。
无论是在客户端还是在服务器上,单个持久连接都没什么意义。但如果有很多客户端,服务器可能会变慢。
如果您控制其他服务器,更好的方法是在其上安装守护程序。本地进程可以监听文件系统通知并向连接的观察者广播。
That's probably the best thing you can do, given the circumstances. When watched directories get bigger, your daemon will likely run slower and consume more resources.
A single persistent connection is nothing, both on client and server. But if there are many clients, server may slow down.
If you control the other server, a much better way would be to install a daemon on it. Local process can listen to filesystem notifications and broadcast to connected watchers.