Ruby on rails Phusion乘客产卵器rails应用程序导致高cpu使用率
我在同一台服务器上运行了Asterisk和Rails应用程序。所有通过Asterisk的入站呼叫都会触发对rails应用程序控制器的“curl”,以启动juggernaut发布,从而能够将入站呼叫实时推送到单个登录用户(显示呼叫方配置文件详细信息的弹出对话框) 问题是,rails应用程序的乘客产卵器在任何呼叫开始进入时都以几乎100%的CPU使用率运行。每个入站电话将运行: /usr/bin/curl 在星号控制器中:Ruby on rails Phusion乘客产卵器rails应用程序导致高cpu使用率,ruby-on-rails,passenger,asterisk,phusion,Ruby On Rails,Passenger,Asterisk,Phusion,我在同一台服务器上运行了Asterisk和Rails应用程序。所有通过Asterisk的入站呼叫都会触发对rails应用程序控制器的“curl”,以启动juggernaut发布,从而能够将入站呼叫实时推送到单个登录用户(显示呼叫方配置文件详细信息的弹出对话框) 问题是,rails应用程序的乘客产卵器在任何呼叫开始进入时都以几乎100%的CPU使用率运行。每个入站电话将运行: /usr/bin/curl 在星号控制器中: def inbound_call if params[:src_num]
def inbound_call
if params[:src_num].length > 6
extension = AsteriskUserextension.find_by_extension(params[:exten])
if extension.present? && extension.user.present?
@user = extension.user
customer = Customer.first_match(params[:src_num]).first
customer_name = customer.present? ? customer.full_name : "Unknown Caller"
queue = AsteriskQueue.find_by_name(params[:queue])
@result = Asterisk::Action.response_factory("asterisk_inbound","#{queue.try(:title)}","OK",customer.try(:id))
publish
end
end
render :nothing => true, :status => :created
end
我相信高入站呼叫率导致了高CPU使用率。补救这种情况的最好办法是什么?把所有的工作都推到重做会有帮助吗
谢谢你的指导 您需要使用FastCGI技术 您还需要在星号中使用CURL函数,而不是系统应用程序 对系统的每次调用都会创建shell和fork新进程
通过AMI而不是dooign CURL检查星号事件也是一个不错的主意。您需要使用FastCGI技术 您还需要在星号中使用CURL函数,而不是系统应用程序 对系统的每次调用都会创建shell和fork新进程 也可以通过AMI检查星号事件,而不是dooign CURL