2010-04-16 7 views
8

मुझे एक रूबी डिमन बनाने की ज़रूरत है जो freeswitcher इवेंटमैचिन लाइब्रेरी का उपयोग फ्रीस्विच के लिए करेगी।एक रूबी डिमन बनाएं जो मेरे रेल वातावरण को एकीकृत करता है

कुछ दिनों से मैं एक रूबी डिमन बनाने के लिए सबसे अच्छे समाधान के लिए वेब देख रहा हूं जो मेरे रेल पर्यावरण को एकीकृत करेगा, मेरे सक्रिय रिकॉर्ड मॉडल को स्पष्ट रूप से एकीकृत करेगा। मैंने उत्कृष्ट रयान बेट्स स्क्रीनकास्ट (एपिसोड 12 9 कस्टम डिमन) पर एक नज़र डाली है, लेकिन मुझे यकीन नहीं है कि अभी भी एक वास्तविक समाधान है।

क्या किसी को ऐसा करने का अच्छा तरीका पता है?

आपकी मदद के लिए धन्यवाद।

उत्तर

8

मैं हर समय अपने रेल वातावरण के लिए डिमन्स बनाता हूं। डेमन्स मणि वास्तव में इसमें से सभी काम लेता है। उदाहरण के तौर पर, मेरे नवीनतम रेल ऐप (स्क्रिप्ट/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 [रन | शुरू | रोक | पुनः आरंभ], और आप एक के बाद डेमॉन में तर्क पारित "कर सकते हैं - "। उत्पादन में आप यह सुनिश्चित करने के लिए भगवान या मोनिट का उपयोग करना चाहेंगे कि यह मर जाता है तो डिमन फिर से शुरू हो जाता है। मज़े करो!

+0

आपके उत्तर के लिए लोगान thnaks। मैं आपके टेम्पलेट के साथ कोशिश करूंगा। – jjmartres

संबंधित मुद्दे