복붙노트

[REDIS] 로드하지 않고 루비 resque 환경 레일

REDIS

로드하지 않고 루비 resque 환경 레일

나는 잘 작동하지만, 너무 느린입니다 resque 노동자가있다. 이 주된 이유는 난 그냥 Heroku가 및 지불을 사용하고 나는이 항상 실행중인 근로자를 보관하지 않습니다 (최대로드 액티브를 사용하여 적어도 10-20초 걸리는 전체 환경을로드하는 데있다 시간의 노동자)를 실행합니다. 나는 외부 웹 사이트에서 잡아 및 구문 분석 데이터에 resque 노동자를 사용하고 내 데이터베이스에 데이터를 덤프하고있다.

내 질문은 내가 DataMapper를 사용하는 대신 레일을 사용하지 않도록하는 방법을 다시 작성해야하는지 여부입니까? 액티브보다 빠르게로드합니다 다른 또는 뭔가.

내가 코드를 추출해야하는 경우 또는 다시 응용 프로그램에 외부 데이터로 무엇을해야하고, 노동자의 그것을 밖으로 이동 파악 (액티브를 사용)?

의미가 있기를 바랍니다.

해결법

  1. ==============================

    1.나는 같은 문제를 가지고있다. 설치 레이크 작업 : 당신은 설치 레이크 resque에 환경을 수

    나는 같은 문제를 가지고있다. 설치 레이크 작업 : 당신은 설치 레이크 resque에 환경을 수

    나는이 시도. 내 레이크 resque 작업을 가정하는 것은 lib 디렉토리 / 작업 / resque.rake에

    require "resque/tasks"
    
    task "resque:setup" do
      root_path = "#{File.dirname(__FILE__)}/../.."
    
      db_config = YAML::load(File.open(File.join(root_path,'config','database.yml')))["development"]
      ActiveRecord::Base.establish_connection(db_config)
    
      require "#{root_path}/app/workers/photo_downloader.rb" #workers
    
      #Dir.glob("#{root_path}/app/models/*").each { |r| puts r; require r } #require all model
    
      require "#{root_path}/app/models/photo.rb" # require model individually
    end
    

    나는 레일 환경을 필요로하는 종이 클립 보석을 완전히 성공하지 사용할 수 있기 때문에

  2. ==============================

    2.레일 '부트 스트랩 정말 느리다; 이 재시작에 대한 특정 시간이 될 때까지 계속적인 실행하기위한 것입니다 (가장 가능성이 일부 메모리 누수를 제거하기 위해, 소프트웨어 버그 - 무료로하지 않습니다), 그리고 하나 개의 요청에 대해 발사되는 사이트로 사용할 수 없습니다 및 다음 종료합니다.

    레일 '부트 스트랩 정말 느리다; 이 재시작에 대한 특정 시간이 될 때까지 계속적인 실행하기위한 것입니다 (가장 가능성이 일부 메모리 누수를 제거하기 위해, 소프트웨어 버그 - 무료로하지 않습니다), 그리고 하나 개의 요청에 대해 발사되는 사이트로 사용할 수 없습니다 및 다음 종료합니다.

    사용 그런 종류의 더 스크립트를 닮았다. 당신이 브라우저를 실행해야하는 경우, 당신은 쉽게 페이지를 작성하고 스크립트 또는 유사한 추상화 계층 (나는 그것이 레일의 사용 가능한 외부 생각)에서 액티브를 사용하는 Erubis 같은 것을 사용할 수 있습니다. 나 자신, 작은 작업, 난 그냥 Mysql2를 사용합니다.

  3. ==============================

    3.active_record 얻고 레일 응용 프로그램없이 당신에게 다른 보석에 들러를 사용합니다.

    active_record 얻고 레일 응용 프로그램없이 당신에게 다른 보석에 들러를 사용합니다.

    require 'rubygems'
    require 'logger'
    require 'active_record'
    require 'bundler'
    
    require "active_support"
    
    require "spreadsheet"
    
    require 'net/ping'
    
    require 'net/http'
    
    Bundler.setup
    
    Bundler.require(:default) if defined?(Bundler)
    
    $config_logger = Logger.new("./log/dev.log")
    
    
    
      class Dbconnect
    
         def  initialize
           @settings = YAML.load_file('./config/database.yml')["development"]
           @adapter = @settings["adapter"] if @settings["adapter"]
           @database = @settings["database"] if @settings["database"]
           @pool = @settings["pool"] if @settings["pool"]
           @timeout = @settings["timeout"] if @settings["timeout"]
        end
    
        def connect_to_db
          ActiveRecord::Base.establish_connection(
            :adapter => @adapter,
            :database => @database,
            :reconnect => @reconnect,
            :pool => @pool,
            :timeout => @timeout)
    
          $config_logger.info "\n  db Connected: to => #{@database}  "
        end
      end
    
    end  
    
    }
    
    
    Example Gemfile : 
    
    
    source "http://rubygems.org"
    
    gem 'mail'
    
    gem "escape_utils"
    
    gem 'json',:require => "json"
    
    gem 'json_pure'
    
    gem 'resque'
    
    gem 'resque-scheduler'
    
    gem 'redis-namespace'
    
    gem 'resque-status'
    
    gem 'rake'
    
    gem 'em-udns'
    
    gem 'sqlite3'
    
    gem 'spreadsheet'
    
    gem 'activerecord', '3.2.1', :require => "active_record"
    
    gem 'net-scp', :require => 'net/scp'
    
    gem 'net-sftp', :require => 'net/sftp'
    
    gem 'net-ssh', :require => 'net/ssh'
    
    gem 'dir'
    
    gem 'amatch'
    
    gem 'haml'
    
    gem 'net-ping'
    
    
    
    gem install bundler
    

    물건의 나머지 : 설치 번들입니다.

  4. from https://stackoverflow.com/questions/6898499/ruby-resque-without-loading-rails-environment by cc-by-sa and MIT license