Heroku在Proximo上运行的过程失败

时间:2013-01-18 00:44:42

标签: heroku phantomjs proximo

我的Rails应用程序中有一种方法(旨在通过Rake任务触发),该方法会弹出并运行PhantomJS进程:

bin/proximo bin/phantomjs vendor/assets/javascripts/yslow.js http://www.example.com

phantomjs可执行文件是1.8.1或Linux(x86-64)。 yslow.js是PhantomJS 3.1.1的YSlow。

这个过程是通过Heroku的Proximo插件运行的,因为我运行此网站(上面的example.com)的网站将向任何IP显示反DOS保护页面没有列入白名单。

我遇到的问题是这个命令只是挂起,没有输出。如果我在不执行bin/proximo包装器脚本的情况下运行相同的命令,它可以工作,但由于上面提到的IP限制,我当然会得到错误页面的输出。

这是直接在Heroku的Rails控制台中运行它的堆栈跟踪:

irb(main):023:0> `bin/proximo bin/phantomjs vendor/assets/javascripts/yslow.js http://www.example.com`
^CIRB::Abort: abort then interrupt!
  from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.11/lib/active_support/core_ext/kernel/agnostics.rb:7:in `call'
  from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.11/lib/active_support/core_ext/kernel/agnostics.rb:7:in ``'
  from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.11/lib/active_support/core_ext/kernel/agnostics.rb:7:in ``'
  from (irb):23
  from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
  from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
  from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
  from script/rails:6:in `require'
  from script/rails:6:in `<main>'

有什么想法导致挂起?


编辑:我的同事帮助我发现它实际上是PhantomJS,而不是代理。除非其他人有其他建议,否则我会寻找另一种销售PhantomJS的方式。

编辑2 :我使用Heroku buildpack安装了PhantomJS,同样的事情发生了。我还注意到,如果我连接到Heroku上的Bash shell并运行phantomjs控制台,我就无法在其中输入命令,因为回车键不执行任何操作。不确定这是否相关......

0 个答案:

没有答案