2013-03-17 52 views
3

我使用以下寶石:Ruby on Rails,腳本/延遲作業開始。什麼也沒有發生

gem 'daemons', "=1.0.10" 
gem 'delayed_job_active_record' 

和下面的命令推遲方法:

after_create:perform_analysis handle_asynchronously:perform_analysis,:run_at => Proc.new {1.minutes.from_now }

腳本/ delayed_job的:

#!/usr/bin/env ruby 

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) 
require 'delayed/command' 
Delayed::Command.new(ARGV).daemonize 

於是,我開始APPLICA通常使用rails(在tmp/pids中出現一個文件server.pid)。上傳一些東西,所以創建方法被調用。有些數據被插入到delayed_jobs表中。我關閉停止運行服務器(在tmp/pids中不存在任何東西!)。

然後我寫到命令行:

RAILS_ENV=production script/delayed_job start 

響應: 在TMP/PID的appeard delayed_job.pid和終端顯示我什麼都沒有,所以我跑:

[email protected]:~/Desktop/tors15.01$ RAILS_ENV=production script/delayed_job status 
pid-file for killed process 8695 found (/home/kik/Desktop/tors15.01/tmp/pids/delayed_job.pid), deleting. 
delayed_job: no instances running 

,並再次嘗試我的運氣:

[email protected]:~/Desktop/tors15.01$ RAILS_ENV=production script/delayed_job start 
[email protected]:~/Desktop/tors15.01$ RAILS_ENV=production script/delayed_job run 
pid-file for killed process 8718 found (/home/kik/Desktop/tors15.01/tmp/pids/delayed_job.pid), deleting. 
SQLite3::SQLException: no such table: delayed_jobs: UPDATE "delayed_jobs" SET locked_by = null, locked_at = null WHERE (locked_by = 'delayed_job host:kik-VirtualBox pid:8724') 

當我tun rake jobs:work它workin g

這是什麼原因導致我在哪裏犯錯? 在此先感謝

回答

4

您確定將導軌環境設置爲生產嗎?

script/delayed_job start 

RAILS_ENV=development script/delayed_job start