1

毎分サーブレットを呼び出すページがあります。このサーブレットは別の Web サイトに接続してデータを取得し、このデータを処理してから、response.getWriter() メソッドを介して応答を送信します。

2 人の異なるユーザーが同時にページにアクセスしている場合、2 つの要求が同じサーブレットに対して行われます。サーブレットのインスタンスはまだ 1 つしかありませんが、他の Web サイトに接続しようとする 2 つのプロセス (おそらく 2 つの異なるスレッド上) があります。

私たちが望むのは、他の Web サイトに接続し、データを処理してからキャッシュ/セッションに保存する別のクラス/メソッド/サーブレットを用意することです。このクラス/メソッド/サーブレットは、最初のサーブレットがページから呼び出されたときにキャッシュ/セッションからデータを取得し、Web サイトに接続しようとしないように、毎分呼び出す/呼び出す必要があります。これをどのように実装しますか?(問題は、新しいクラス/メソッド/サーブレットが、ページからリクエストを行うことなく、毎分自動的に呼び出される方法です)

4

2 に答える 2

2

外部Webページを読み取り(アクセスを容易にするためにJsoupを使用)、データをsynchronized Mapサーブレットに読み取るスケジュールされたタスクを作成します。アプリケーションスコープからそのマップを読み取ることができます

getServletContext().getAttribute("dataMap");

そこからデータを読み取ります

于 2012-07-17T05:06:48.793 に答える
1

これを行うにはスケジュール タスクを作成する必要があり、このスケジュール タスクの間隔は 1 分です。

于 2012-07-17T05:24:03.977 に答える