1

データをサード パーティに送信するために HTTPRest ポスト コールを実行しています。データは 300 万から 1000 万のオーダーであり、サード パーティが指定した認証用のユーザー名とパスワードとともに、リクエストごとに 1 つのレコードしか送信できません。

私が使用しているサンプルコードは

public static void main(String[] args) {

  try {

    DefaultHttpClient httpClient = new DefaultHttpClient();
    HttpPost postRequest = new HttpPost(
        "http://localhost:8080/RESTfulExample/json/product/post");

    StringEntity input = new StringEntity("{\"qty\":100,\"name\":\"iPad 4\"}");
    input.setContentType("application/json");
    postRequest.setEntity(input);

    HttpResponse response = httpClient.execute(postRequest);

    if (response.getStatusLine().getStatusCode() != 201) {
        throw new RuntimeException("Failed : HTTP error code : "
            + response.getStatusLine().getStatusCode());
    }

    BufferedReader br = new BufferedReader(
                    new InputStreamReader((response.getEntity().getContent())));

    String output;
    System.out.println("Output from Server .... \n");
    while ((output = br.readLine()) != null) {
        System.out.println(output);
    }



  } catch (MalformedURLException e) {

    e.printStackTrace();

  } catch (IOException e) {

    e.printStackTrace();

  }

}

リクエストごとに約6秒かかり、1,000万レコードを計算すると数時間かかります。パフォーマンスを改善する方法を教えてください。

前もって感謝 サニー

4

2 に答える 2

1

まず、1 つのリクエストに 6 秒かかる場合、1,000 万件のレコードには 115 日かかります。そのため、マルチスレッド技術を使用してサイレント側からパフォーマンスを向上させる前に、まず応答時間を 6 秒から数百ミリ秒に短縮する必要があります。

于 2012-06-05T04:28:05.370 に答える
1

このコードを使用する と、REST の呼び出し中にパフォーマンスが向上します。これは、WebResource などの Jax API のクラスを使用するためです。

于 2012-06-06T07:14:30.450 に答える