1

我實際上想要在生產模式中激活延遲作業。所以我輸入 「RAILS_ENV =生產腳本/ delayed_job start(dir undefined)

RAILS_ENV =生產腳本/ delayed_job的開始

」 在控制檯和 具有錯誤的「

:DIR => File.join(DIR, 'tmp','pids'),

「that report undefined dir ...在線搜索有關原始文件但找不到任何文件。

#!/usr/bin/env ruby 
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) 
require 'delayed/command' 
Delayed::Command.new(ARGV).daemonize 
daemon_options = { 
    :multiple => false, 
    :dir_mode => :normal, 
    **:dir  => File.join(dir, 'tmp', 'pids'),** 
    :backtrace => true 
} 

Daemons.run_proc('job_runner', daemon_options) do 
    if ARGV.include?('--') 
    ARGV.slice! 0..ARGV.index('--') 
    else 
    ARGV.clear 
    end 

    Dir.chdir dir 
    RAILS_ENV = ARGV.first || ENV['RAILS_ENV'] || 'development' 
    require File.join('config', 'environment') 

    Delayed::Worker.new.start 
end 
+0

什麼東道主? Heroku的? – 2012-04-24 15:12:40

+0

yup ... heroku,但它現在發生了衝突。 =( – 2012-04-24 23:38:03

回答

0

嘗試用Rails.root替換dir(更換兩次出現)。在上面的代碼中從未定義變量或方法dir。你也可以定義dir以上daemon_options

dir = Rails.root 
daemon_options = { 
    ... 
+0

是否替換爲「:dir => File.join(dir,'tmp','pids'),」與Rails.root或其他目錄中的dir? – 2012-04-24 23:40:44

+0

是的,將其更改爲「:dir => File .join(Rails.root,'tmp','pids'),「並將」Dir.chdir dir「更改爲」Dir.chdir Rails.root「 – cydparser 2012-04-25 01:19:35

+0

更改後沒有錯誤輸出。謝謝。但也沒有視線在生產模式下運行在後臺的delayed_job。你介意告訴我有其他需要配置嗎?或者如何驗證它?謝謝。 – 2012-04-25 12:41:15

相關問題