【问题标题】:Heroku fails to perform clockwork delayed tasksHeroku 无法执行发条延迟任务
【发布时间】:2013-07-22 09:57:00
【问题描述】:

我有一个发条配置文件(在 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 脚本位于错误语句中提到的相同位置。

【问题讨论】:

  • 对文件使用大写名称并不是 ruby​​ 的最佳实践。某些操作系统也是不区分大小写的。

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


【解决方案1】:

试试这个

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

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

【讨论】:

    【解决方案2】:

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

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

    File.expand_path(__FILE__) et al
    

    或正在做

    require './filename' (ironically).
    

    或通过使用

    require_relative 'filename'
    
    require './filename' 
    

    仅当您的脚本在工作目录设置为脚本所在目录的情况下执行时才有效。在多目录项目中通常不是这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      相关资源
      最近更新 更多