ruby-on-rails – 如何编写一个强大的永无止境的进程?
发布时间:2020-12-16 19:09:47 所属栏目:百科 来源:网络整理
导读:我已经问了一个关于目录观看的另一个问题,这个问题得到了解答,但问题的另一半是如何在 ruby中最好地创建一个永无止境的进程来做到这一点. 以下是要求: 永远奔跑 可监视(即知道它是上升还是下降) 有某种方式重新启动它并确保它已启动(上帝?) 使用Capistrano
我已经问了一个关于目录观看的另一个问题,这个问题得到了解答,但问题的另一半是如何在
ruby中最好地创建一个永无止境的进程来做到这一点.
以下是要求: >永远奔跑 我们看过BackgroundRb,但这看起来有点过时,说实话不可靠! 我们正在运行一堆构成我们环境的Ubuntu服务器. 有任何想法吗? 解决方法
我有一个事件机器循环拖尾一些nginx日志文件并将它们放入MongoDB. “log eater”脚本与ruby守护进程一起运行.
http://daemons.rubyforge.org/
我发现它比上帝更可靠.如果脚本死亡,它还会监视并重新启动脚本.如果你想在跑步者死亡时收到通知,你可以使用monit来做到这一点. 这是守护进程的跑步者脚本: #!/usr/bin/env ruby require 'rubygems' require 'bundler' Bundler.require(:default) Bundler.setup(:default) options = { :app_name => "log_eater",:dir_mode => :system,:multiple => true,:backtrace => true,:monitor => true } Daemons.run(File.join(File.dirname(__FILE__),'log_eater.rb'),options) 这已经运行了好几个月没有泄漏或没有问题.上帝有泄漏和死亡的问题. Capistrano可以通过重新启动启动脚本来重新启动它. 这是我的gentoo linux的摘录 start() { ebegin "Starting log-eater" cd /ruby/STABLE/quickanalytics `scripts/log_eater_runner.rb start -- /usr/logs/nginx.log` eend $? "Failed to start log-eater" } – 启动命令后,您希望传递给脚本的任何args. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |