Heroku无法执行发条延迟任务

时间:2013-07-22 09:57:01

标签: ruby-on-rails heroku delayed-job

我有一个发条配置文件(在lib文件夹中),它将另一个文件的方法排队以执行延迟的任务。

require_relative "Adwords/Extractor"

它在我的本地计算机上工作正常(在win8上运行WEBrick)。但是在heroku上,它失败并出现以下错误:

 'app[web.1]: /app/lib/clock.rb:5:in `require_relative': cannot load such file -- /app/li
  b/Adwords/Extractor (LoadError)'

Extractor.rb脚本位于错误声明所述的相同位置。

2 个答案:

答案 0 :(得分:1)

在Ruby 1.9.2或更高版本中不再创建当前目录。 LOAD_PATH的一部分。

你可以使用绝对路径来解决它

File.expand_path(__FILE__) et al

或正在做

require './filename' (ironically).

或使用

require_relative 'filename'

require './filename' 

仅在脚本执行时将工作目录设置为脚本所在的同一目录才能生效。在多目录项目中通常不是这种情况。

答案 1 :(得分:1)

试试这个

require "#{Rails.root}/app/lib/Adwords/Extractor"

使用rails app的相对路径。