[ruby-list:50031] Re: プロセス間で変数が共有される?

From: "HOMMA, YUSAKU" <y.homma@...>
Date: 2014-12-19 14:31:48 UTC
List: ruby-list #50031
でざわさん、ありがとう御座います。

# Railsをお使いですか?

はい、Rails 3.2.8 です。

やりたいことは、画面から入力された値を基ににファイルを読み
値をクラス変数に格納して、PDF出力する、といった感じです。

今日、簡単なテストプログラムを書いてみました。
(1) 画面から入力された値をクラス変数に格納、
(2) ボタンだけの確認画面を表示、
(3) ボタンが押されたら、格納した値を画面に表示
これだけです。
あるPCで確認画面が表示されている時点で、別のPCから同じプログラムを
呼んで値を入れると、最初のPCで確認ボタンが押されたときには別のPCで
入力した値が表示されます。
Controller と View だけのシンプルなプログラムです。
Apache+Passengerだけでなく、Rails標準のサーバーでも同じ結果でした。

> Passenger配下では一つのrubyプロセスが動いているのですから、
> リクエスト間で共有されるのはrubyの仕様ではないかと。

ということですが、ではグローバル変数やクラス変数だけでなく、インスタンス変数なども
独立性が保たれない、ということでしょうか。

マルチユーザーのアプリは、今までは主にクラサバ型のWindowsアプリで書いていたので、
ちょっとこの仕様には目が点です。
Passengerで、クライアントからのリクエスト毎にプロセスを立ち上げるようなオプションがないと、
泣きそうです(同じようなプログラムをすでに80本以上書いてしまった)。

それが仕様なら、仕方がないですね。工夫してみます。

ありがとう御座いました。

--
本間

In This Thread