日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Rails non browser app高级篇-capistrano/daemon部署

發布時間:2024/4/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Rails non browser app高级篇-capistrano/daemon部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上次談了如何開發rails的non browser app,本文將談談如何部署這類APP的問題

用于生產環境時,必須要考慮到如何將其部署和運行,最好的辦法是讓這個app作為daemon運行,并且可以通過capistrano自動運行。

1、Capistrano的基本用法-這里就不介紹了

2、讓一個app能夠daemon運行,首先在script下創建一個文件daemon,內容如下:

#!/usr/bin/env ruby

require File.expand_path("http://www.cnblogs.com/config/environment", __FILE__)

require 'daemons'

?

ENV["APP_ROOT"] ||= File.expand_path("#{File.dirname(__FILE__)}/..")

ENV["RAILS_ENV"] ||= "development"

ENV["RAILS_ENV_PATH"] ||= "#{ENV["APP_ROOT"]}/config/environment.rb"

?

script = "#{ENV["APP_ROOT"]}/#{ARGV[1]}"

?

pid_rep = "/tmp/myapp/pids"

begin

  FileUtils.mkdir_p(pid_rep)

rescue

  puts "pids stored in the diretory: "+pid_rep

end

Dir.chdir Rails.root

Daemons.run(script, dir_mode: :normal, dir: pid_rep)?

3、修改Gemfile,增加一行:

require 'daemons'

4、運行bundle install

5、測試腳本:utils/test.rb

loop

  sleep 60

  puts "I am awake after 1 minute"

end

6、運行(阻塞當前shell)

script/daemon run utils/test.rb

7、daemon運行

script/daemon start utils/test.rb

8、stop daemon

script/daemon stop utils/test.rb

?

9、通過capistrano部署到生產環境,并且在服務器上daemon運行,修改config/deploy.rb,加入:

desc "run utils in daemon"

daemon_script = current_path+'/script/daemon'

production_env = 'RAILS_ENV=production '

namespace :deploy do

? task :utils do

? ? run production_env+daemon_script+" stop utils/test.rb"

? ? run production_env+daemon_script+" start utils/test.rb"

? end

end

10、運行cap deploy:utils

11、檢驗:在服務上運行ps -ef|grep test能夠看到有test.rb進程

轉載于:https://www.cnblogs.com/mobileinternet/archive/2012/07/02/2573325.html

總結

以上是生活随笔為你收集整理的Rails non browser app高级篇-capistrano/daemon部署的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。