2016-09-22 57 views
0

我開始使用Backburner在我的應用程序的後臺運行一些作業。我試過在「Working Jobs」下面的documentation,但我明顯在做一些非常明顯而且非常不正確的事情。Backburner rake任務 - NameError:未定義的本地變量或方法

的Gemfile:

gem 'backburner' 

Rake文件:

require_relative 'config/application' 
require 'backburner/tasks' 

Rails.application.load_tasks 

然後在鐵軌控制檯:

rake backburner:work 

(我認爲只會運行所有未決,排隊次要地位的工作。 )

但我得到的是錯誤:NameError: undefined local variable or method 'work' for main:Object from (pry):1:in '__pry__'

八九不離十知道什麼撬呢(我用它扔binding.pry到我的代碼調試,但僅此而已),但我不知道它如何可能造成這一點。更不用說我在整個工作和耙子任務方面仍然相當薄弱。

任何幫助將不勝感激!

回答

0

很顯然,我最近在做一些愚蠢的問題。我將一個變量傳遞給我的Backburner.enqueue這是一個ID,所以我期望它是數字的,如下所示:@admin.id。如果@admin被定義在助手的範圍內,我會調用我的入隊函數,但是我實際上將該變量傳遞給了這個助手方法......這意味着@admin沒有被定義,這將會很好,其中,猜猜丹尼爾,意味着@admin.id是未定義的。這意味着無論如何我都會接觸到這個工作(因爲不是,Backburner實際上並沒有打破),但是我沒有像我認爲的那樣把工作排隊,因爲我將一個無效屬性傳遞給它。

因此,我得到的錯誤看起來完全不相關的問題,但它是。總是傳遞你的方法所期望的變量,否則會期望錯誤。

編輯:
此外,我不能downvote自己的職位。我試過了。它值得。

編輯2:
原來這真的很難/不支持讓beanstalkd打算在Heroku。明鏡。也應該檢查一下。我只是喜歡beanstalkd是如何處理一些事情,並在部署之前與它一起使用,並意識到這是一個不行。

相反,我按照Heroku的建議與Resque一起去了。他們也支持延遲工作(DJ),但指出它很重,Resque更好。

所有這一切說,我終於得地方,我需要去與Resque,因爲它是這樣的事情我做了一個小documentation幫我(也許其他任何悲傷的靈魂誰越過絆倒這個蹩腳的帖子)將來會讓後臺工作人員在Heroku託管的Rails應用上運行。被警告:它真的是像我這樣的假人的指南,因爲我必須解開很多現在對我來說很明顯的東西。我列入的Resque文檔中存在一些空白,這實際上只是說明了某些事物的含義以及事情的發展方向。

相關問題