2011-12-14 3 views
1

私はこれを理解できません。 Facebook APIからデータを取得するスクリプトがあり、このスクリプトは常に実行されています。 (set_time_limit(0);を使用)cronを使用してexec()PHPコマンドを起動する方法は2つありますが実行しないでください。

ただし、Facebook APIでエラーが発生し、スクリプトが停止することがあります。そのため、5分ごとにcronタスクを実行して、スクリプトがまだ実行中かどうかを確認し、実行していない場合は再び起動します。

私はいくつかのことを試しましたが、異なるユーザー権限や何かのためにcronジョブからexec()コマンドを実行できないように見えますか?あなたはどうやってこれをやりますか?

私は、あなたが継続的にスクリプトを実行する方が適しているデーモンの作成に見てみたいことはCentOSとPHP 5.3+

+1

'exec()'には何が必要ですか。あなたはcrontaskからそれを実行できませんか? – PeeHaa

+0

FacebookにはTwitterと同様のストリーミングAPIがありますか?それは、すべての時間を実行するようなスクリプトを持っている唯一の理由、そうでなければ、それを行う必要はありません、ちょうど5分ごとに新しいスクリプトを開始し、あなたの応答を解析して終了することができます。 –

+0

@PeeHaa + Dmitri私はこの質問全体が今は馬鹿だとほとんど思う。スクリプトは実際にTwitter Streaming APIスクリプトに似ているので、間違っていると思う。 ありがとう! – Glooh

答えて

1

cronを異なるユーザー(rootなど)に設定すると、権利の問題が回避されます。しかし、PeeHaaは良い点を挙げています:もしこれがcronスクリプトであれば、execを使う理由はありません。execの仕事はOSにコマンドを送ることです...これらのコマンドはcronを実行するのではなくcrontabから直接実行できますPHPファイル。

+0

本当です!ありがとう! – Glooh

0

を使用しています。このPEARパッケージを使用してPHPを作成することができますSystem_Daemon

+0

彼はとてもいいですね。 Justinに感謝します。 – Glooh

+0

興味のある方:いいチュートリアルです。http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/ – Glooh

0

このプロセスが非常に頻繁に実行される場合は、無限ループで実行してスリープ状態にしてください。 crontabの必要はありません。

while(true) { 

    //magical code stuff 

    sleep(60); 

} 
関連する問題