Heroku上的Ruby守护进程

时间:2013-07-16 00:24:40

标签: ruby heroku

我正在尝试在Heroku上执行ruby守护程序无框架应用程序,但在尝试执行该工作程序后它崩溃了:

heroku[worker.1]: State changed from crashed to starting
heroku[worker.1]: Starting process with command `bundle exec rake twitter:start`
heroku[worker.1]: State changed from starting to up
heroku[worker.1]: Process exited with status 0
heroku[worker.1]: State changed from up to crashed

该应用程序基本上通过一堆API收集数据,并将其保存在远程MongoHQ实例上。

rake任务是:

dir_path = File.expand_path('../', __FILE__)

namespace :twitter do
  desc 'Start Twitter daemon'
  task :start do
    exec "#{dir_path}/bin/autana start"
  end

  ...
end

Procfile非常简单:worker: bundle exec rake twitter:start

执行守护程序的代码如下:

#!/usr/bin/env ruby
require 'daemons'
require File.expand_path('../../lib/autana', __FILE__)

Daemons.run_proc('autana', multiple: true, no_pidfiles: true) do
  client = Autana::Client::Twitter.new
  client.collect
end

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你能动态运行吗?

heroku run rake twitter:start

答案 1 :(得分:0)

所以,这是一个MongoDB错误。数据没有正确关联。进入控制台并更改文档后,一切都按预期工作。