• ベストアンサー

PHPでバッチ処理(時間制御)をするには

よろしくお願いします。 PHP4でバッチ処理というか時間を自動で確認してメールを送信するPGを作りたいと思っています。 契約しているレンタルサーバ(Linux)でPHPを利用しています。Cronなどを利用せず、純粋にPHPのプログラムのみを利用してできる処理やノウハウをご存じないでしょうか?? どうぞ、ご教授お願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

 PHPはHTTPリクエストに対して動作する仕組みで、HTTPによるキックが無いと動かない。これはcronを引き合いに出しているので分かっているのだろう。ではどうすれば良いか。  ひとつの(泥臭い)解は、じゃあ別のマシンでHTTPをキックするプログラムを作れば良いという事になる。  つまり、ある特定の(おそらく自作の)HTTPクライアントと協調して、必要なPHPの呼び出しはクライアントが行い、PHPはそれに応じた処理を行うという事になるな。もちろんこの場合、自前でチャレンジレスポンスを行うなど、そのプログラムから以外は絶対にキックされない仕組みを作りこむ必要がある。  残念ながら私にはこのくらいしか思いつかない。

RSTREET
質問者

お礼

ありがとうございます。なるほど、外部からのキックという方法がありますね。自前サーバだったらいくらでも動かせますからね。

その他の回答 (2)

noname#48563
noname#48563
回答No.3

cronがいやだというのであれば、atを使うというはどうでしょう(W それ以外だと、以下の力業しかないのでは?  ・nowとsleepを使う  ・はてなアンテナなどの更新チェックサイトを活用 いずれも迷惑ですね(w。やはり、atが筋ではないでしょうか。

RSTREET
質問者

お礼

ありがとうございます。 at!いいですね! 早速調べました。 ただ、レンタルサーバーですので、サーバーの機能を利用するわけにいかないんです。。。 でも、この機能を利用すれば、余裕でプログラムをキックできますね!

noname#48563
noname#48563
回答No.2

systemを使ってシェルをコールするのはどうでしょうか?

参考URL:
http://jp2.php.net/manual/ja/function.system.php
RSTREET
質問者

お礼

ありがとうございます。 >systemを使ってシェルをコールするのはどうでしょうか? そういう手もありますねー。 たとえば、毎日AM1:00に自動でPHPからメールを配信したい場合、どのように動作させればいいでしょうか? systemを使ってシェルをコールするための準備が必要になるかなぁ・・と考えてしまったのですが。・・。