2009-06-24 10 views
0

私はコマンドラインから実行するPHPスクリプトを構築しました。 pop3電子メールアカウントへの接続を開き、すべての電子メールをダウンロードしてデータベースに書き込み、一度ダウンロードすると削除します。私はこのスクリプトをコマンドラインからバットファイルで呼び出すようにしています。今度は5分ごとにbatファイルを呼び出す予定のタスクを作成しました。問題は、時には大きな添付ファイルを含む電子メールがあり、スクリプトが添付ファイルを実際にダウンロードし、それらをオフラインのRAWファイルとして保存するというタイムアウトをゼロに設定していることです。タイムアウトがないと、スクリプトが死ぬことはありませんダウンロード中にスケジュールされたタスクとして実行されているPHPスクリプトがハングアップする - ヘルプ!

私は、プログラムがハングすることがあり、それがちょっと迷惑であることがわかりました。常にハングアップするのは、接続をネゴシエートしてメールサーバーに接続するときです。タイムアウトがゼロに設定されているので、それはタルトの位置に固執しているようです。そのため、技術的にハングアップしているため、タスクは実行されません。

電子メールをダウンロードするときにプログラムがタイムアウトしないようにしたいのですが、接続のネゴシエーションやメールサーバーへの接続の時点では、プログラム自体の残りの部分ではなくタイムアウトが必要です実行。

私はこれをどのように行うのです:(

+0

どのようにPOP3電子メールアカウントに接続しますか? –

+0

私は、roundcube.net webmailプロジェクトのコード機能を使用しています。基本的にコードの変更です。コマンドラインから実行できるように、コードの一部をやり直す必要があります。 – Ali

答えて

0

ライブラリを使用している場合は、タイムアウト値は。あなたが直接ソケットを使用している場合。あなたが詳細についてはthis other questionで見ることができsocket_set_timeout()を使用して設定することができ、あなたはしかし、私はむしろ、本当にがタイムアウトの問題であるかどうかを確認したいと思っていますLog php errors into a fileそしてそれらをすべてブラウズすることができますmax_execution_timeを許容値(10分のような)に設定し、

0

私は最近、この問題に遭遇しました答えを探しています。 .phpファイルを直接呼び出すタスクスケジューラがありました。ハングアップして何も返さないでしょう。

firefox.exeを実行し、urlをパラメータとして送信することが、タスクマネージャを使用して.phpファイルを実行する適切な方法であることがわかりました。

firefox.exe「http://host/dir/file.php」

関連する問題