1

我正在尝试使用collectiveidea的delayed_job gem 安装说明包括

Rake tasks are not automatically loaded from gems, so you’ll need to add
the following to your Rakefile:

begin
  require 'delayed/tasks'
rescue LoadError
  STDERR.puts "Run `rake gems:install` to install delayed_job"
end

我的 Rakefile 在哪里?什么是 Rakefile?

4

3 回答 3

3

我对rails 3.1 和collectiveidea-delayed_job 有同样的问题。

一旦我添加Delayed::Worker.backend = :active_record到初始化程序中,我得到了错误
no such file to load -- delayed/backend/active_record (LoadError)

我的解决方案是添加gem 'delayed_job_active_record'gemfile,如建议here

于 2011-12-27T07:44:25.173 回答
2

我有同样的问题,并将该代码放在 lib/tasks 目录中的delayed_job.rake 中。它有效,但现在它说:

*** Starting job worker localhost pid:79949 
rake aborted! 
uninitialized constant Delayed::Job

现在有什么问题?

更新:我刚收到布兰登的邮件回复:

最新版本中存在使用 rake 任务时无法正确初始化的错误。如果您在 config/initializers 中创建一个文件并将以下内容放入其中,则错误应该会消失:

Delayed::Worker.backend = :active_record
于 2010-04-14T10:36:43.083 回答
1

Rakefile是一个用于配置rake的文件,是一个 Ruby 构建工具(有点像make,但都在 Ruby 中)。在 Rails 项目中,在项目的顶层目录中有一个名为 Rakefile 的文件,您可以在其中插入此代码。

或者,您可以在 lib/tasks 目录中添加一个文件(例如,名为delayed_job.rake)并将代码放入其中。文件名并不重要,只要

  1. 它位于 lib/tasks 目录中
  2. 它的扩展名为 .rake
于 2010-04-07T01:37:46.187 回答