私はGroovyスクリプトを使用しています。私は、すべてのコールに対して1つのHTTPクライアントを使用しています - for best performanceHttpClientは100回の呼び出しごとに「再初期化」されます
が私のコード:
httpClient = new HttpClient()
def start = new Date().getTime()
def i = 0
for (item in items) {
post(item)
def spend = new Date().getTime()- start // usual call takes 100-300 miliseconds
start = new Date().getTime()
if(spend>1000){
logger.debug i
}
++i
}
def post(item){
def httpMethod = new PostMethod(endpoint)
httpMethod.setRequestHeader(new Header("Content-Type", "application/json"))
httpMethod.setRequestHeader(new Header("Host", AWS.Host))
httpMethod.setRequestHeader(new Header("x-amz-date", amzDate))
httpMethod.setRequestHeader(new Header("Authorization", authorizationHeader))
def requestEntity = new StringRequestEntity(item, "application/json", "UTF-8")
httpMethod.setRequestEntity(requestEntity)
def statusCode = httpClient.executeMethod(httpMethod)
httpMethod.releaseConnection()
return statusCode >= 200 && statusCode < 300
}
私のために印刷されたこのコード:
DEBUG: 0 : 1504
DEBUG: 100 : 1389
DEBUG: 200 : 1177
DEBUG: 400 : 1200
DEBUG: 500 : 1058
...
私は正しいのHttpClientを得るように、第1の中に何かを初期化しています100回目のコールごとに同じものを再初期化する必要があります。
EDIT:マイコードはAmazon APIゲートウェイを呼び出します。メソッドをGETに変更してGoogleに電話すると、この問題は再現されませんでした。
この再初期化を回避できますか?