Rails 社区为我的问题创建的可能解决方案的数量让我有点不知所措。所以也许任何人都可以帮助我弄清楚如何最好地解决它。
我想做的是编写一个行为类似于“dropbox”的 Rails 应用程序。一方面,它应该是一个 Web 界面,我可以在其中将文件上传和下载到我的 Web 服务器。这与我的数据库和所有这些东西交互。另一方面,我可以通过 SSH 访问该服务器,并且可以手动将文件放在那里。现在我希望这个文件系统操作触发我的 Rails 应用程序执行如果我通过 Web 界面创建文件时会执行的操作。
所以我以某种方式编写了一个守护进程,对吧?有很多解决方案,
比如
daemons.rubyforge.org/github.com/mirasrael/daemons-rails
github.com/costan/daemonz
github.com/kennethkalmer/daemon-kit
我想拥有的另一个功能是,我的 Rails 应用程序会在启动或退出我的 Rails 应用程序时自动生成和停止我的守护进程。所以“daemonz”似乎是最好的解决方案。但是当我进一步搜索时,我发现
github.com/FooBarWidget/daemon_controller/
这似乎更“高科技”并且已经在我与乘客一起部署时使用。但是我不明白当我退出 Rails 时它是否会杀死我的守护进程。我想情况并非如此,所以我想知道如何在我的应用程序中实现它。
实现“事物”以对文件系统更改做出反应的方式对我来说似乎很简单。我会使用
github.com/guard/listen/
(另一种选择是:github.com/ttilley/fssm)
但是我第一次真正面对这个协议时不明白的是,如果这会产生一个我能够与之通信的服务器或者我必须处理什么样的对象。
我想实现的最后一件事是一种工作队列,以便侦听文件系统更改与我的 rails 应用程序的操作分开。但是有这么多解决方案,我完全不知所措
:
github.com/tobi/delayed_job/github.com/defunkt/resque http://backgroundrb.rubyforge.org/
http://godrb.com/到底是什么
?这对我有什么帮助?
有没有人提示如何解决这个问题?非常感谢!
简
PS 我想发布所有 github 项目的链接,但不幸的是我没有足够的“声誉”