[Codeigniter-users] バッチ処理について

Back to archive index

Kenichi Ando neo.k****@gmail*****
2008年 1月 17日 (木) 18:18:36 JST


bossatamaです。

08/01/17 に nomiso0125<nomis****@gmail*****> さんは書きました:
> nomisoです。はじめまして。
>
> > 「codeigniter の恩恵にあずかるには」って箇所の真意が
> > ちょっと伝わりませんでした。
> > cronはOS側なんで、CIとは無関係ですし。
> > CIでPHPのshell_exec()メソッドを使って、何かやるってこと
> > でしょうか?
>
> 説明不足で、すみません。。
>
>
> やりたいことは、こんな感じです。
>
>
> ・毎朝6時に、あるディレクトリのCSVファイルを読み込み、ファイルの中身を検証したい。
>
>
> cli版のPHPであれば、以下のように、crontab で phpファイルを直接実行すれば良いと思いますが、
> -----------------------------------------------------------
> * * 6 * * * php /hoge/csv_validator.php
> -----------------------------------------------------------

はい。そうですね。よくある手法だと思います。

>
>
> ・検証ロジックはCIのValidationクラスを使いたい。
>
>
> です。
>
> # CSVの中身を Validation に渡す方法はとりあえず無視するとして・・
>
> そもそも、この時点でWebアプリケーションではないので、CIを使うという事は、
> 選択肢からはずすべきなのかもしれません。

CIはURIセグメントベースのWebアプリケーションなんで、
基本的には、URIからのアクションではないでしょうか。

>
> ただ、CIの持つ機能は魅力的です。
>
> なので、CIを使って、上記処理を行う Controller を作成し、wget を使えば・・
>
> -----------------------------------------------------------
> * * 6 * * * wget http://example.com/hoge/csv_validator/
> -----------------------------------------------------------
>
> ・Validation などCIの機能がそのまま使える
> ・バッチ処理作成のための学習コストがかからない(CIでの作成方法と同じなので)
>
> と思います。
>
> このあたりが「codeigniter の恩恵にあずかるには」という事です。

なるほど。よくわかりました。
例えば、get_instance() メソッドを使ってCI内部のリソースにアクセス
するなどで、FW外のファイルでも手軽にCIの機能を使えるようになる
かもしれません。
ただ、このようなファイルは直接アクセスできない領域で実行される
べきものでしょうね。

実際、Webアプリケーション以外でCIを利用した経験がありませんので
利用したことのある方があったら、コメントください。

>
>
> ただ、なんとなく邪道?のような気がして、投稿させていただきました。
> 以下のような問題もありそうです。

いえいえ、遠慮しないでください。

>
> ・Webサーバー経由なので、Webサーバーがダウンしていたら動かない。
> 直接実行に比べて確実ではない。

例えば、結果のFLASE/TRUEをメールでお知らせするとかどうでしょうか。
信頼性は多少上がるかもしれませんね。

>
> ・長い時間かかる処理はタイムアウトが発生する。

PHPの実行時間をphp.iniで調節できたと思いますよ。

>
> など。。
>
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>




Codeigniter-users メーリングリストの案内
Back to archive index