2

$redis = Redis.newredis-rbはスレッドセーフであるため、Unicornのafter_forkを入れないことの悪影響は何ですか?私に複数の労働者がいると仮定します。

そのコード行をenvironment.rbまたはイニシャライザーに配置するのとは対照的に?

4

1 に答える 1

4

after_forkスレッドセーフとはほとんど関係がありません。これは、スレッドを生成するときではなく、親プロセスが子プロセスをフォークするときに使用されます。

なぜ気にする必要があるのか

フォークしない場合は、おそらくフォークしないでしょう。

フォークすると、親プロセスと子プロセスがファイルとソケット記述子(db接続、redis接続)を共有します。子でRedisへの接続を再度開かない場合、親からのデータを子からのデータとソケットでインターリーブできます。

何が起こっているのかについてのより詳細な説明については、RubyPipesのUnixシェルを読んでください。

于 2012-10-11T07:33:55.480 に答える