問題タブ [spark-framework]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Javaで「ワーカー」を持つ
Spark フレームワークを使用して Java で作成された REST API がありますが、現在、リクエスト スレッドで多くの作業が行われているため、リクエストの速度が大幅に低下しています。
リクエストスレッドから必要なすべての作業を行うバックグラウンドワーカー/キューを作成することで、これを解決したいと考えています。サーバーからの応答には、クライアントが必要とするデータ (表示されるデータ) が含まれています。これらの例では、クライアントは Web ブラウザーです。
現在のサイクルはこんな感じ
- クライアントからサーバーへの API リクエスト
- サーバーはブロッキング作業を行います。数秒/分後のサーバーからの応答
- クライアントが応答を受け取ります。応答に必要なすべてのデータがあります
これが私が望むものです
- クライアントからサーバーへの API リクエスト
- サーバーはオフスレッドで動作します
- クライアントはサーバーからほぼ瞬時に応答を受け取りますが、必要なデータがありません。この応答には、実行中の作業の進行状況を確認するために使用できる ID (整数または UUID) が含まれます。
- クライアントは、実行中の作業のステータスを定期的にチェックします。応答には、ステータス (パーセンテージや推定時間など) が含まれます。作業が完了すると、応答には必要なデータも含まれます
このアプローチの嫌いな点は、API が非常に複雑になることです。データを取得したい場合は、2 つの要求を行う必要があります。1 つはブロッキング作業を開始するためのもので、もう 1 つはステータスをチェックするため (およびブロッキング作業の結果を取得するため) です。API が複雑になるだけでなく、バックエンドも複雑になります。
これは効率的ですか、それとも私が達成したいことを実装するためのより良い方法はありますか?
java - Spark Java の組み込み Jetty 内での同時実行
Spark フレームワークでサポートされている単純な Java REST API があります。
アプリケーションの Java メイン メソッドから呼び出される次のチャンクによってhttp://sparkjava.com/documentation#embedded-web-serverに示されているように、スレッドを初期化しました。
ただし、同時リクエストのシミュレーションをいくつか行ったところ、スレッドは作成されますが、HTTP リクエストを順番に行うためにキューに入れられますが、リクエストは同時に発生すると考えられていました。
それは正常ですか?サーバーが構成された数のスレッドを処理することを回避するが、HTTP 要求を効果的に実行するためにそれらをキューで待機させるのは、Spark フレームワークの通常の動作ですか?
java - Spark WS Framework Filterが2回呼び出される
特定のエンドポイントでの認証を処理する前にフィルターを使用するだけでなく、末尾のスラッシュを追加する前にフィルターを使用することを結び付けています。
これが私のルーティングコードです:
次に、次のエンドポイントにヒットします。
ローカルホスト:4567/api/samples/10
addTrailingSlashes が最初に呼び出されます。次に、認証フィルターが呼び出され、今度はリクエスト エンドポイントとして localhost:4567/api/samples/10/ を使用して addTrailingSlashes が再度呼び出され、最後に認証フィルターが再度呼び出されます。
これは予想される動作ですか?私がしたいのは、 addTrailingSlashes が一度呼び出されてスラッシュが追加され、認証フィルターが一度だけ呼び出されるようにリクエストを一度転送することです。
どんなアイデアでも大歓迎です。
ありがとう、ネイサン