3

我正在尝试在 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

有任何想法吗?

4

2 回答 2

0

可以动态运行吗?

heroku run rake twitter:start
于 2013-07-16T14:26:42.503 回答
0

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

于 2013-07-16T14:49:17.417 回答