rails:3909
From: Takashi Kawachi <tkawachi@g...>
Date: Tue, 16 Jul 2013 21:56:36 +0900
Subject: [rails:3909] Re: forkってできないのでしょうか
出沢さん、こんばんは。 はじめまして。河内です。 時間がかかる処理は deleyed_job, resque, sidekiq などを使ってバックグラウンドで実行するのが良いかと思います。 バックグラウンドで実行されるコードの状態(計算中、完了、エラーなど)と得られた結果はDBなどに格納します。 Browser からは JavaScript で polling するなどして結果を適宜表示します。 2013年7月16日 21:36 dezawa <dezawa@a...>: > 出沢です > > 事情が有って RAILS_GEM_VERSION = '2.2.3' on Linuxです > > > 複数の解が有り、一つ出すのに20〜60秒かかる問題があります。 > これを次の様にしたいと思っています > (1)最初の解が出た所でまずそれを表示する > (2)その解を見てもらっている間に残りの解をとく > (3)解が出る毎にリンクを貼り替える。 > (求まった解の数のリンク、だんだん増える) > (4)ユーザはリンクをつついて解を比較する > もしくは > (1')解が出る前に戻る。答えが無い画面。 > (2')解をひたすら作る > > この(1)(2)、ないし(1')(2')を実装するために > (A)forkしchildで解を求めつづける > (B)forkしchildで戻り、親で解を求めつづける > をこころみたのですが、 > (A)親が終わった時点でchildも終了する > (B)500 - Internal Server Error で終わる > ActiveRecord::Baseのmethodがおかしくなっている様で > Model.find_by_attribute だと > undefined method `find_by_attribute' > Model.find(:conditions => ["attribute = ?",value)[0] だと > (Couldn't find Model without an ID): > というエラーがlogに残ります。 > > (1)(2)、ないし(1')(2')を実装するよい方法はないでしょうか。 > この様な > 「複数解あり、解が出揃うのを待つのは時間がかかりすぎる」 > 場合に採る良い方法はないでしょうか > > 宜しくお願いします。 > > -- > ML: rails@r... > 使い方: http://QuickML.com/ > -- Takashi Kawachi tkawachi at gmail.com
3907 2013-07-16 14:36 [dezawa@a... ] forkってできないのでしょうか 3908 2013-07-16 14:52 ┣[dezawa@a... ] -> @ 3909 2013-07-16 14:56 ┗[tkawachi@g... ] 3911 2013-07-17 01:47 ┗[dezawa@a... ]