मैं हर समय अपने रेल वातावरण के लिए डिमन्स बनाता हूं। डेमन्स मणि वास्तव में इसमें से सभी काम लेता है। उदाहरण के तौर पर, मेरे नवीनतम रेल ऐप (स्क्रिप्ट/yourdaemon) से निकाला गया एक छोटा सा टेम्पलेट यहां दिया गया है। मैं eventmachine मणि का उपयोग, लेकिन यह विचार एक ही है:
#!/usr/bin/env ruby
require 'rubygems'
require 'daemons'
class YourDaemon
def initialize
end
def dostuff
logger.info "About to do stuff..."
EventMachine::run {
# Your code here
}
end
def logger
@@logger ||= ActiveSupport::BufferedLogger.new("#{RAILS_ROOT}/log/your_daemon.log")
end
end
dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
daemon_options = {
:multiple => false,
:dir_mode => :normal,
:dir => File.join(dir, 'tmp', 'pids'),
:backtrace => true
}
Daemons.run_proc('your_daemon', daemon_options) do
if ARGV.include?('--')
ARGV.slice! 0..ARGV.index('--')
else
ARGV.clear
end
Dir.chdir dir
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
YourDaemon.new.dostuff
end
यह आपको देता है सभी सामान्य लिपि/yourdaemon [रन | शुरू | रोक | पुनः आरंभ], और आप एक के बाद डेमॉन में तर्क पारित "कर सकते हैं - "। उत्पादन में आप यह सुनिश्चित करने के लिए भगवान या मोनिट का उपयोग करना चाहेंगे कि यह मर जाता है तो डिमन फिर से शुरू हो जाता है। मज़े करो!
स्रोत
2010-04-16 21:51:40
आपके उत्तर के लिए लोगान thnaks। मैं आपके टेम्पलेट के साथ कोशिश करूंगा। – jjmartres