同じサーバーでアスタリスクと Rails アプリを実行しています。アスタリスク経由のすべてのインバウンド コールは、Rails アプリのコントローラーへの「カール」をトリガーしてジャガーノート パブリッシュを開始し、ログインしている個々のユーザーへのインバウンド コールのリアルタイム プッシュを有効にします (発信者プロファイルの詳細を示すポップアップ ダイアログ)。
問題は、Rails アプリの Passenger Spawner が、通話が開始されるたびにほぼ 100% の CPU 使用率で実行されていることです。各着信通話が実行されます。
/usr/bin/curl http://parlo.local/asterisk/inbound_call?exten=8405&src_num=921187888&recordingfilename=q70001-20
アスタリスク コントローラで:
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 使用率を引き起こしていると思います。この状況を改善する最善の方法は何ですか? すべての作業を RESQUE にプッシュすることは役に立ちますか?
ご指導ありがとうございます。