人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Perlで別のプロセスのデータへの随時アクセスは可能でしょうか。

Perlに関する質問です。
バックグラウンドでプロセスを動かしておいてデータを取得し(ログファイルを読み続けデータをハッシュに格納、等)、必要に応じて別のプロセスからデータを読み込むことは可能でしょうか(各種レポート作成のコマンドを作るイメージ)。
できればデータをDBに格納、中間ファイル生成等は行わずプロセス間で直接データをやりとりしたいと思っております。
またもし中間物が必要な場合でも、なるべく書き込みアクセスを減らしたいです。

よろしくお願いします。

●質問者: kyo_bracer
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● じゅぴたー
●150ポイント

OSが何か分からないので、WindowsとLinuxに場合分けして回答します。


Windowsの場合

相手のプロセスがDDEやOLEをサポートしていれば、それを利用できます。


Linuxの場合

相手のプロセスがメッセージキューやソケットをサポートしていれば、それを利用できます。


受け渡しデータをDBに格納するということでしたら、単に両方のプロセスでDBを共有すれば良いだけです。


2 ● a-kuma3
●150ポイント ベストアンサー

データをやり取りするふたつのプロセスは、両方とも Perl なのでしょうか?


OS が何だ、とか、をあまり考えたくないのであれば、Socket で通信しちゃうのが、てっとり早いと思います。

http://perldoc.jp/docs/perl/5.8.8/perlipc.pod#Internet32TCP32Clients32and32Servers


「バックグラウンドでプロセスを動かしておいて...」の方が Server になって、

「必要に応じて別のプロセスから...」の方が Client になります。


ハッシュなどの構造を持ったデータをやり取りするためには、「シリアライズ」という、もう一手間を加える必要があります。

http://perldoc.jp/docs/modules/Storable-2.05/Storable.pod

http://perldoc.jp/docs/modules/Thread-Serialize-0.07/Serialize.pod

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ