2012-03-24 72 views
2

我已經安裝了的delayed_job的collectiveidea叉子delayed_job:run_at無法正常工作。所有作業設置爲

git的當前時間運行://github.com/collectiveidea/delayed_job.git

,但不能讓它接受:run_at

從我的Gemfile

gem 'rails', '3.2.2' 
gem 'delayed_job_active_record' 

,當我嘗試在控制檯

1.9.2-p318 :005 > Time.now 
=> 2012-03-24 10:20:34 -0700 
1.9.2-p318 :006 > User.delay.new :run_at => 5.days.from_now 
SQL (0.1ms) BEGIN 
SQL (1.6ms) INSERT INTO `delayed_jobs` (`attempts`, `created_at`, `failed_at`, `handler`, `last_error`, `locked_at`, `locked_by`, `priority`, `run_at`, `updated_at`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) [["attempts", 0], ["created_at", Sat, 24 Mar 2012 17:20:36 UTC +00:00], ["failed_at", nil], ["handler", "--- !ruby/object:Delayed::PerformableMethod\nobject: !ruby/class 'User'\nmethod_name: :new\nargs:\n- :run_at: 2012-03-29 17:20:36.876374000Z\n"], ["last_error", nil], ["locked_at", nil], ["locked_by", nil], ["priority", 0], ["run_at", Sat, 24 Mar 2012 17:20:36 UTC +00:00], ["updated_at", Sat, 24 Mar 2012 17:20:36 UTC +00:00]] 
(2.7ms) COMMIT 
=> #<Delayed::Backend::ActiveRecord::Job id: 17, priority: 0, attempts: 0, handler: "--- !ruby/object:Delayed::PerformableMethod\nobject:...", last_error: nil, run_at: "2012-03-24 17:20:36", locked_at: nil, failed_at: nil, locked_by: nil, created_at: "2012-03-24 17:20:36", updated_at: "2012-03-24 17:20:36"> 

我看到在運行時有一些UTC偏移量,但基於Time.now,我可以告訴run_at不會前進5天。

「run_at」,星期六,2012年3月24日17點20分36秒UTC +00:00

任何想法?

+0

你可以看到我的回答如下。 – yspro 2012-04-19 07:32:14

回答

12

您犯了一個錯誤:傳遞:run_at作爲參數來初始化用戶模型的方法。

嘗試:

User.delay(:run_at => 5.days.from_now).new