Ric*_*ras 11 ruby ruby-on-rails god
我使用乘客服务我的软件.它产生了许多ruby进程.
有时这些红宝石中的一个变得臃肿,我希望它会死.
我希望将神用于那个意图.我的想法是监控所有这些红宝石,如果它消耗超过500MB的内存3个周期,上帝应该尝试优雅地杀死它.如果它活着超过5分钟,那么上帝不应该优雅地杀死它.
在我看来,上帝总是试图再次运行服务,因此它迫使我们提供启动命令.是否有可能只使用上帝来杀死不良的行为过程,并让乘客产生在必要时让他们恢复生活?
你的问题的答案在于问题本身。你可以使用god gem杀死 ruby 进程,god gem是 github 人员开发的 ruby 进程监控框架。
基本上,它是如何工作的:
这是一个简单的例子(取自文档)。将此视为文件长时间运行的进程,我们要监视其内存使用情况,我们可以称之为simple.rb
loop do
puts 'Hello'
sleep 1
end
Run Code Online (Sandbox Code Playgroud)
现在,我们安装godgem 并将其配置为以超级用户身份运行,以便它可以终止/生成进程,然后创建一个配置文件。示例(也取自文档):
God.watch do |w|
w.name = "simple"
w.start = "ruby /full/path/to/simple.rb"
w.keepalive(:memory_max => 500.megabytes)
end
Run Code Online (Sandbox Code Playgroud)
在这里,你可能已经知道,如果进程内存使用量超过 500 MB,上帝就会重新启动它。如果您开始使用godgem 进行流程管理,以下一些资源可能会有所帮助:
现在,请记住所有配置god实际上都是合法的 ruby 代码,这样您就可以发挥创意并做各种事情。
最后,如果您经常发现自己正在运行长时间运行的进程,我建议您尝试JRuby,由于 JVM 和比 MRI 更快,它对于长时间运行的进程效果更好
| 归档时间: |
|
| 查看次数: |
1050 次 |
| 最近记录: |