2011-07-12 6 views
-3

私の現在のアプリケーションは、Oracleプラットフォーム上のJSPページに対してAPIリクエストを行うPHPページへのajax呼び出しを行います。現在、PHPスクリプトは、有効なデータがJSPから返されたことを単純に信頼し、{true} json応答をajax成功ハンドラに返します。 Ajaxは正常に機能しないように設定されていますが、これは役に立ちません。PHP PCNTL - 信頼できるエラーログが可能ですか?

jspファイルが例外をスローするように設定されると、それに応じてPHPが例外を処理し、エラーを記録し、json {false}という応答を返します。

ログが広すぎるとロギングに時間がかかることがあります。このプロセス(ロギングまたはエラーチェックなし)は現在非常に高速であり、速度は重要な要素です。この潜在的なボトルネックを回避する私のアイデアは、PHPに "エラーを記録するが、何かがログに記録されたことを確認するのを待つのではなく、単にfalseを返す"ことを伝えることです。

私はPCNTLでフォークが可能であることを知っていますが、私たちがフォークしていると非常にメモリが要求されることがわかるので、プロセス全体をフォークするのは躊躇しています。

PCNTLでなくても、私が望んでいることを実行することは可能ですか、これをどのように達成するのですか?

+0

私はdownvotesを理解していませんが、私は近い要求を理解しています。私の質問は明らかに研究努力を示しています。 – AlienWebguy

+0

btw。今戻っているのは有効なJSON –

+1

ではありません。これは1年前からのことですが、jspはJava側から戻してきました。私もここで働いていません – AlienWebguy

答えて

1

あなたが推測したように、PCNTLは悪い考えです。

ロギングのパフォーマンスを実際にどのようにベンチマークしましたか?早すぎる最適化を試みている可能性があります。理解できるように、それはajaxなので、できるだけ反応性の高いものにしたいと思っていますが、ロギングで0.01秒の平均遅延が生じると、おそらくそれはコストに見合ったものでしょう。 syslogを使用することはオプションである場合

また、ベンチマークにfopen()/fwrite()/fclose()syslog()間のパフォーマンスの違いを確認してください。

PHPとは非同期で行うことは非常に困難です。 PHPプロセスでのロギングが高すぎるとすれば、Javaなどの小さなロガーを作成し、HTTP POST(たとえば)を介してログメッセージを送信します。 Log4JやLogbackのようなライブラリでは、すでに半分の作業が完了しています。着信メッセージを処理してワーカースレッドに記録するだけで済みます。あなたの設定はすでに十分にRube Goldbergishだとは思えないので::)

+1

私はあなたがあなたのポイントを得るので;)我々はまだここにアイデアを投げているが、何かが変更されたら、将来のユーザーのためにこのスレッドを更新します。 – AlienWebguy

関連する問題