需要一个 ruby 解决方案来在单独的进程中执行方法
我正在实现一个轮询器服务,其界面如下所示。
poller = Poller.new(SomeClass)
poller.start
poller.stop
start
方法应该不断地开始命中 http 请求并更新数据库中的内容。一旦开始
,该过程应该继续,直到它被明确停止
。
我知道 start
的实现需要在新进程中生成并运行。我不太确定如何在 Ruby 中实现这一点。我想要一个 ruby 解决方案,而不是 ruby 框架特定的解决方案(不是 Rails 插件或 sinatra 扩展。只是 ruby gems)。我正在探索 eventmachine 和 starling-workling。我发现 eventmachine 太大了,无法在短时间内理解,而 workling 是一个插件,而不是一个 gem。所以让它在 Ruby 应用程序中工作是一件痛苦的事情。
我需要有关如何实现这一目标的指导。有什么指点吗?代码示例会有所帮助。
编辑
Eventmachine 或 starling-workling 解决方案将优于线程/分叉。
I am implementing a poller service whose interface looks like this.
poller = Poller.new(SomeClass)
poller.start
poller.stop
The start
method is supposed to continuously start hitting an http request and update stuff in the database. Once start
ed, the process is supposed to continue till it is explicitly stop
ed.
I understand that implementation of start
needs to spawn and run in a new process. I am not quite sure how to achieve that in Ruby. I want a ruby solution instead of a ruby framework specific solution (Not rails plugins or sinatra extensions. Just ruby gems). I am exploring eventmachine and starling-workling. I find eventmachine to be too huge to understand in short span and workling is a plugin and not a gem. So it is a pain get it working for Ruby application.
I need guidance on how do I achieve this. Any pointers? Code samples will help.
Edit
Eventmachine or starling-workling solution would be preferred over threading/forking.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能使用
Process#kill
中的示例吗:Can't you use the example from
Process#kill
:您是否考虑过 Daemons gem?
Have you considered out the Daemons gem?