我有一个轨2.0.2运行的应用程序与postgresql数据库。该机器将收到数据上的TCP port。我已经有编码工作的红宝石多线程tcp服务器收到的请求,但我需要这个代码运行的旁边我的轨道程序。

所以我想我需要知道如何以跨越一个新的进程内的轨道,或者如何创建一线工作人员,将执行我的螺纹tcp服务器的循环。我的红宝石tcp服务器可能已经访问Email,但这是不必要的(我可以随时创建一个http请求,发布所收到数据到原来的轨道服务器)

有帮助吗?

解决方案

为什么复杂的事情?只是运行的应用程序--你TCP服务器和轨道应用程序。

无论是拉动模型一级(和Email)进入你的TCP服务器(svn::外部项目或活塞的可能工作以及为这一)和我们之间的通信的两个应用程序通过的数据库,或者让该轨道应用的"主人",并与它通过HTTP作为你的建议。

把红宝石应用到Windows服务,请参阅 win32-service 宝石可以从 win32utils 项目: http://rubyforge.org/projects/win32utils/

其他提示

我需要tcp服务器在Windows 2003服务器上作为服务运行。我使用mongrel_service加载Rails作为服务,我不知道为纯ruby代码做同样的方法。如果我可以在计算机启动时启动我的tcp服务器,我将查看您的解决方案(尽管如此,这看起来还不错)。

不要让您的Rails应用程序负责TCP服务器应用程序的状态。它真的不太适合这样做 - 并且可能没有理由他们需要以绝对锁定的方式相互启动。使用monit或其他东西监视两个服务器进程。

如果不了解更多应用程序架构,我们无法肯定地说,但我建议使用ActiveRecord和数据库在服务器之间进行通信而不是HTTP。这样,即使您的Rails应用程序由于某种原因而关闭,您的其他服务器仍然可以处理请求。它也可能有点快捷。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top