【问题标题】:rake aborts, don't know how to build task 'jobs:work'rake 中止,不知道如何构建任务 'jobs:work'
【发布时间】:2012-07-20 04:08:12
【问题描述】:

我正在尝试开始我的第一个 Ruby (v1.9.3p194) 项目。我在 Heroku 上托管,并使用 Sinatra 和 ActiveRecord。我正在尝试将delayed_job 集成到我的项目中,并且在获取rake 来识别jobs:work 时遇到了麻烦。 (是的,我知道delayed_job 通常适用于rails,但据我所知,它可以在没有它的情况下工作。)

到目前为止,我已经使用我的 gemfile/bundler 安装了delayed_job (3.0.3) 和delayed_job_active_record (0.3.2) gem。因为我没有rails,所以我从delayed_job 自述文件中创建了自己的迁移文件,并进行了迁移。我认为这些都不应该引起我的问​​题。

从我看到的所有文档来看,安装 gems 应该可以解决问题。我已经尝试卸载并重新安装它们,但无济于事。我不确定还有什么可以尝试的——也许我需要在我的 rakefile 中明确包含一些东西,但我还没有看到任何表明这一点的文档。

非常感谢任何帮助。

【问题讨论】:

  • 请发布您的Rakefile 的内容。使用 sinatra,您不会获得 rails 获得的所有免费的魔法 rake 任务连接。也可以试试rake -T - 它会列出 rake 知道的可用任务。

标签: ruby heroku rake sinatra delayed-job


【解决方案1】:

也许我有一个实际的答案给你。

我做了一个简单的项目,让jobs:workrake -T 一起出现:

宝石文件

source :rubygems

gem 'delayed_job'

Rakefile

require 'rake'
require 'bundler'
require Bundler.load.gems.find{|i| i.name == 'delayed_job'}.gem_dir + "/lib/delayed/tasks"

运行: $ bundle install

结果:

$ rake -T
rake jobs:clear  # Clear the delayed_job queue.
rake jobs:work   # Start a delayed_job worker.

【讨论】:

  • 我的 Rakefile 包含以下 require 'sinatra/activerecord/rake' require './app'
  • 我尝试了您对 rakefile 的建议,现在 rake 确实知道工作:工作。然而,现在 rake 似乎被任务“环境”绊倒了。开始觉得我正在和 Sinatra + DJ 一起逆流而上。还没有深入研究这个问题 - 有什么更有用的建议吗?
  • 如果您了解一点 Rails 和 Sinatra 的工作原理以及它们的不同之处,您肯定会受益匪浅。至于你关于“环境”任务的问题,我不知道你在问什么,需要更多细节。为它打开一个新的 SO 问题?
猜你喜欢
  • 1970-01-01
  • 2015-01-08
  • 2018-07-13
  • 1970-01-01
  • 2011-07-17
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
  • 2013-01-25
相关资源
最近更新 更多