Heroku无法执行时钟延迟的任务



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

require_relative "Adwords/Extractor"

它在我的本地机器上运行良好(WEBrick在win8上运行)。然而,在heroku上,它失败了,并出现以下错误:

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

Extractor.rb脚本位于错误语句中提到的相同位置。

试用

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

使用rails应用程序的相对路径。

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

你可以通过使用绝对路径绕过它

File.expand_path(__FILE__) et al

或进行

require './filename' (ironically).

或使用

require_relative 'filename'
require './filename' 

只有在执行脚本时,将工作目录设置为脚本所在的同一目录时才有效。在多目录项目中通常不是这样。

最新更新