1

私はThinserver+ Ruby on Rails + Mysqlを使用しており、データベースを1時間ごとに大量に処理するcronジョブがいくつかあります(スクリプトが完了するまでに約1〜2分かかります)。

cronjobが実行されると、Webサイトはロードを停止し、cronjobが終了した後にのみ応答します。

だから私の質問は、cronjobが実行されているときにWebサイトが正常に読み込まれるように、すべてを独立、非同期、または並列にするにはどうすればよいかということです。

ガイドへのリンク、または一般的なアドバイスをいただければ幸いです。

アップデート:

cronjobのコードを共有できず申し訳ありませんが、基本的には次のような数千のリクエストを実行します。

SELECT 1 AS one FROM `table` WHERE `table`.`type_id` = BINARY '1251625345_4146645145056' LIMIT 1

次に、前の挿入がnullを返した場合(つまり、エントリが存在しない場合)、数千の挿入が行われます。

4

1 に答える 1

1

あなたのcronジョブはRailsアプリにそれらの選択/挿入を行うように依頼しますか?

もしそうなら、

ThinはシングルスレッドのWebサーバーです。複数のリクエストを同時に処理することはできません。cronjobは、ジョブを実行するために別のRubyプロセス(Rakeタスクなど)を開始する必要があります。

于 2013-02-09T15:21:26.123 に答える