Backburner rake task - NameError: undefined local variable or method
Backburner rake task - NameError: undefined local variable or method
我开始使用 Backburner 运行 在我的应用程序后台执行一些作业。我尝试按照 "Working Jobs" 下的 documentation 进行操作,但我显然在做一些非常明显且非常不正确的事情。
宝石文件:
gem 'backburner'
Rakefile:
require_relative 'config/application'
require 'backburner/tasks'
Rails.application.load_tasks
然后在 rails 控制台中:
rake backburner:work
(我认为这只会 运行 所有未决的、排队的 backburner 作业。)
但我得到的只是错误:NameError: undefined local variable or method 'work' for main:Object from (pry):1:in '__pry__'
我 sorta 知道 pry 的作用(我用它把 binding.pry
扔到我的代码中调试,但仅此而已),但我不知道如何这可能是造成这种情况的原因。更不用说我在整个工作和抽取任务方面仍然很弱。
如有任何帮助,我们将不胜感激!
显然我最近在问一些愚蠢的问题。我向我的 Backburner.enqueue
传递了一个变量,它是一个 ID,所以我希望它是数字,如下所示:@admin.id
。如果 @admin 是在我调用入队的助手范围内定义的,那会很好,但我实际上是将该变量传递给该助手方法......这意味着 @admin 未定义,猜猜大牛是什么,意思是@admin.id
是未定义的。这意味着我无论如何都在工作(因为不,Backburner 实际上并没有中断),但我没有像我想的那样让工作排队,因为我向它传递了一个无效的 属性 .
所以我得到的错误看起来与问题完全无关,但确实如此。始终传递您的方法所期望的变量,否则会出现错误。
编辑:
另外,我不能对我自己的 post 投反对票。我试过。活该。
编辑 2:
事实证明,它确实 hard/not 支持让 beanstalkd 在 Heroku 上运行。德。也应该检查一下。我只是喜欢 beanstalkd 处理某些事情的方式,并在开始部署之前接受了它,并意识到这是不行的。
相反,我按照 Heroku 的建议选择了 Resque。他们还支持 Delayed Job (DJ),但注意到它很重,Resque 更好。
综上所述,我 终于 到达了我需要与 Resque 一起去的地方,因为它是如此 一件事情 我做了一点 documentation 来帮助我(也许任何其他偶然发现这个蹩脚的悲伤灵魂 post)在 Heroku 托管的 Rails 应用程序上获得后台工作者 运行未来。请注意:它确实是像我这样的傻瓜的指南,因为我不得不想出很多现在对我来说相当明显的东西。我包含的 Resque 文档中存在一些空白,这实际上归结为明确说明某些事物的含义以及事物的去向。
我开始使用 Backburner 运行 在我的应用程序后台执行一些作业。我尝试按照 "Working Jobs" 下的 documentation 进行操作,但我显然在做一些非常明显且非常不正确的事情。
宝石文件:
gem 'backburner'
Rakefile:
require_relative 'config/application'
require 'backburner/tasks'
Rails.application.load_tasks
然后在 rails 控制台中:
rake backburner:work
(我认为这只会 运行 所有未决的、排队的 backburner 作业。)
但我得到的只是错误:NameError: undefined local variable or method 'work' for main:Object from (pry):1:in '__pry__'
我 sorta 知道 pry 的作用(我用它把 binding.pry
扔到我的代码中调试,但仅此而已),但我不知道如何这可能是造成这种情况的原因。更不用说我在整个工作和抽取任务方面仍然很弱。
如有任何帮助,我们将不胜感激!
显然我最近在问一些愚蠢的问题。我向我的 Backburner.enqueue
传递了一个变量,它是一个 ID,所以我希望它是数字,如下所示:@admin.id
。如果 @admin 是在我调用入队的助手范围内定义的,那会很好,但我实际上是将该变量传递给该助手方法......这意味着 @admin 未定义,猜猜大牛是什么,意思是@admin.id
是未定义的。这意味着我无论如何都在工作(因为不,Backburner 实际上并没有中断),但我没有像我想的那样让工作排队,因为我向它传递了一个无效的 属性 .
所以我得到的错误看起来与问题完全无关,但确实如此。始终传递您的方法所期望的变量,否则会出现错误。
编辑:
另外,我不能对我自己的 post 投反对票。我试过。活该。
编辑 2:
事实证明,它确实 hard/not 支持让 beanstalkd 在 Heroku 上运行。德。也应该检查一下。我只是喜欢 beanstalkd 处理某些事情的方式,并在开始部署之前接受了它,并意识到这是不行的。
相反,我按照 Heroku 的建议选择了 Resque。他们还支持 Delayed Job (DJ),但注意到它很重,Resque 更好。
综上所述,我 终于 到达了我需要与 Resque 一起去的地方,因为它是如此 一件事情 我做了一点 documentation 来帮助我(也许任何其他偶然发现这个蹩脚的悲伤灵魂 post)在 Heroku 托管的 Rails 应用程序上获得后台工作者 运行未来。请注意:它确实是像我这样的傻瓜的指南,因为我不得不想出很多现在对我来说相当明显的东西。我包含的 Resque 文档中存在一些空白,这实际上归结为明确说明某些事物的含义以及事物的去向。