0

基本情報:RESTリクエスト、Jerseyを使用(Java)

私は、個々のアイテムを参照する番号のリストがあるプロジェクトに取り組んでいます。

ユーザーはアイテム番号をクリックすると、対応するアイテム/データがロードされて表示されます。

この奇妙な問題が発生しているのは、約14回のクリック後(方向は関係ありません)、単一のREST呼び出しが永遠にかかるというものです。

14回目(またはそれくらい)のクリックの後、追加のクリックごとにさらに500ミリ秒から1秒を話します。私はそれを15秒まで運転するのに十分な忍耐力を持っています。

Chromeは、イベントの「待機中」の部分で2秒未満、360バイトの受信状態で2秒以上を表示します。

何がこれを引き起こす可能性があるかについてのアイデアはありますか?

私は、サーバーに数十から数十の要求をぶつけたばかりのテストページを作成しました。予想どおり、ブラウザは一度に6つ以上の読み込みを阻止しました。6つのリクエストの個々のセットは正常に動作しました。

また、同じRESTリクエストを順番に作成し、完了するまで待ってから500ミリ秒待ってから、もう一度呼び出して、ユーザーが追加のアイテムをクリックするのをシミュレートしてみました。期待どおりに動作しました。

テストページと実際にデプロイされたバージョンの違いは2つだけです。

1)3つのajax呼び出し(2つは同じRESTサービスに対して、1つは別のサービスに対して)を行い、常に時間どおりに完了します。これらの3つは、4つ目(問題の1つ)が始まる前に終了します。

2)30秒のタイマーで上記を実行する「自動」保存機能があります。これに問題が発生することはなく、常に期待どおりに時間どおりに完了します。

SOコミュニティに感謝します。数日間これに頭をぶつけてきました、そして私は私の機知に富んでいます。:P

4

1 に答える 1

0

サーバー側にアクセスできますか?

ログに何か変わったものを見ましたか?

サービス層で各メソッドの実行時間を測定してみましたか?

あなたは見てみたいかもしれません:

http://codemate.wordpress.com/2009/05/08/cpu-profiling-explained/

メモリプロファイリングもあるかもしれませんが、メモリ不足の例外がないため、必ずしもそうではありません

于 2012-05-15T23:02:47.797 に答える