[PHP-users 34778] Re: sleep関数が復帰せずプロセスがダウンする

Yuji KUBOTA kubota.yuji @ forestgroup.net
2009年 9月 18日 (金) 09:57:05 JST


堀田さま

この度はお世話になります。久保田と申します。

コメントを頂き感謝申し上げます。

> 堀田@長崎市です。
> 
> On Thu, 17 Sep 2009 10:10:35 +0900 
> Yuji KUBOTA <kubota.yuji @ forestgroup.net> wrote:
> Subject: [PHP-users 34771] Re: sleep関数が復帰せずプロセスがダウンする
> 
>>>> 定期的に処理を実行するプログラムをプロセスとして常駐化させ
>>>> 利用したと考えています。
>>> レンタルサーバーとか厳しい制約があるんでしたっけ。
>> 自己運営サーバーなので基本的にはサーバーに関する制限はなしです。
>> 開発環境としてPHPで統一しておきたいと言う理由です。
> 
> 参考になるかどうかはわかりませんが、私の職場(大学)では多数の
> バッチ処理を php CLI で運用しています。一例を挙げると
職場の例を教えて頂き、ありがとうございます。

> root @ gtr:~# cat /var/spool/cron/phpuser
> (略)
> #--------------------------------------------------------------------------
> # 入退室状況表示対象研究室ステータスの取得
> #--------------------------------------------------------------------------
> */1 * * * * $HOME/lc_view/progs/get_roomstat.php
> #--------------------------------------------------------------------------
> # 情報演習室におけるログイン状況の取得
> #--------------------------------------------------------------------------
> */5 * * * * $HOME/get_smbstatus.sh >> /tmp/get_smbstatus.log >&/dev/null
> #--------------------------------------------------------------------------
> # 年次更新
> #--------------------------------------------------------------------------
> 0 0 1 4 * $HOME/lc_view/progs/annual_update.php
> 
> それぞれ1分間に1回、5分間に1回、年に一回の処理です。
> 
> スクリプトの中身はいろいろ(オラクルやポスグレにアクセスしたり、
> ssh 経由でいろんなサーバを巡回したり、メールを送ったり)ですが、
> いずれにせよ、処理が終わったら単に終了すればいい(非常駐型)ので
> プログラムが単純になり、保守性も向上します。Web アプリじゃないの
> でセッションなどの状態遷移も意識する必要がない分、可読性もよく、
> ブラウザも不要です。昔の COBOL の感覚です。
> 
> cron とシェルの使い方を覚えれば、いろいろと応用が利きますよ。
勉強になりました。
これだと常駐性がないので、扱いが楽になりますね。
取扱いを検討しています。

> 独立した処理を連続してやりたければ、複数の php スクリプトをまと
> めて実行するシェルスクリプト(上記の get_smbstatus.shがそれ)を
> 作って cron に登録する、などという具合です。
> 
> エンドユーザに見せたい画面だけを Web アプリとして開発し、参照す
> る DB の中身は CLI が生成/更新する、という使い方が多いです。
> 
>>> 常駐化なら、やはり常駐プロセスとしてプログラムを
>>> 作成するのが正攻法だと思います。
>> そのように見直すべきかとも考え始めております。
>> それにしても、なぜプロセスがダウンするかの原因は明確にして
>> おきたいと考えています。
> 
> もし対象が制御系だったり、監視系(インターバルが1分以内)だった
> りする場合は、常駐型にならざるを得ないかもしれません。その場合で
> も CLI ならデバッグも楽だし、apache の介在がなくなるので、原因の
> 絞り込みも少しは楽になるかもです。
上記コメントも考慮し今後の扱いを検討させて頂きます。



PHP-users メーリングリストの案内