0

データベース (MongoDB) から情報を取得し、次のような配列に変換しています。

 @bs = coll.find("headers.from" => { "$regex" => email, "$options" => 'i' }, "date" => {"$gte" => initial_date, "$lte" => Time.now.utc})
      puts "a seguir ao fetch"


      puts @bs

      @bs = @bs.to_a

これは非常にうまく機能しますが、herokuアプリがクラッシュするため、無限サイクルに入ることがあります(私は信じています)。

応答 (最初の行は @bs の出力です):

2011-05-14T17:05:46+00:00 app[web.1]: DBResponse(flags=, cursor_id=, start=)

2011-05-14T17:06:16+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0
2011-05-14T17:06:47+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/favicon.ico dyno=web.1 queue=0 wait=0ms service=0ms bytes=0
2011-05-14T17:07:10+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0
2011-05-14T17:07:17+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0
2011-05-14T17:07:51+00:00 heroku[router]: Error H12 (Request timeout) -> GET yapi.heroku.com/api/v1/69399ead0ed4ded38e7a101f7c8faf/2011-2-1.json dyno=web.1 queue=0 wait=0ms service=0ms bytes=0

すべてのデバッグ情報で理由が本当にわからないので、理由を知りたいです。IT は「.to_a」を永久に保持するだけで、サーバーはブロックされます。

助けてください。

ありがとう

4

1 に答える 1

0

私が見たところ、RoR がこのループを終了させる理由はありません。

可能であれば、Kernel#Array として初期化してみてください。これを試して:

Array([1,2,3]) #=> [1, 2, 3]
Array(123) #=> [123]

それ以外の:

arg = arg.to_a
于 2011-05-14T17:12:10.707 に答える