私たちのシステムのいくつかの機能を自動化する必要があります。残念なことにAPIはなく、Telnetコマンドだけです。PHP経由のTelnetコマンド - PHPTelnetクラスを使用した非常に長い実行時間の問題
私はこれを発見しました:http://www.geckotribe.com/php-telnet/これは本質的にPHPのTelnetクラスです。
私は奇妙な問題を抱えていました。ログインに時間がかかっていたので、接続とユーザー名とパスワードの間に余分なsleep(2)を追加しました。
問題が発生しました:1行だけを出力するコマンドを実行した後、次の行(複数行出力)は、システムを2分15秒間停止させるように見えます(Eclipseデバッグモード)、ブラウザの負荷で1分20秒まで(私は180秒にタイムアウト設定を強制した後にのみ...)。
この行は次のようになります。$ r。= fread($ this-> fp、1000);クラスのDoCommand()関数で。ここで
は、私が実行しようとするスクリプトと同様に、私は最終的に取得し、出力にペーストビンリンクである(情報を保護するために変更して...)コード:http://pastebin.com/TXEHWa05
出力:http://pastebin.com/mVFm5HM2
どのようなアイデアをこれの原因をデバッグするには?これまでのところ私のプロジェクトではデバッガは一切必要としていませんでした。( 理想的には、telnetで2-3秒のコマンドを5秒以内に実行し終えたいと思っています..それ以上ではなく 。
は、私はすぐにわかるを使用してPHPの使用状況のこの種のより多くの経験豊富な誰かがこの呼び出しが呼び出すループがでデータの1000のバイトを読んでいる:)
ありがとうございます!私はプログラム全体を終了するのにまだ6〜10秒かかりますが、8192に変更しました。 – Carmageddon
この値の意味は何ですか?私はそれは何文字を読むのかを理解していますが、本当に必要ですか?私にはそれは価値があるよりも多くのトラブルを引き起こすようです。 これを迂回する方法はありますか?ある日、それは8193の文字に立ち往生しません... – Carmageddon