2017-07-13 8 views
0

JavaのGerrit REST APIを使用してクエリ要求を使用して特定のブランチから2000の変更結果を取得しようとしています。問題は、クエリの検索に何を追加しても、私は500の結果しか得られないということです。Gerrit REST APIの制限を超えたクエリ

hereのオプションを試しましたが、2000年の結果が得られません。私はまたan admin can increase this limitを読むが、この迂回路を必要としない方法を好むだろう。
だから私は思ったんだけどは次のとおりです。

  1. それは、管理者に連絡することなく、上限を増やすことは可能ですか?
  2. そうでない場合。最終的に合計2000件の結果が得られるまで、前のクエリの次の500件の結果に対してクエリを実行するループを使用して、残りの1500件の結果を取得するために、クエリを続行/繰り返しすることは可能ですか?

答えて

-2

最初に、応答に返される最大値を増やすように管理者にリクエストできます。

第二の方法は、ループの前にカウンタを作成し、カウンタが未満2000

例である間、繰り返すことができます:

int count = 0; 

while(count < 2000){ 

    //Here do whatever you need 

    count += result.length(); 
} 

よろしく

+0

問題はまず結果リストにすべての結果が追加されるので正しくuppが追加されないので、間違った500 + 1000 + 1500のようになります。第二に、もし私があなたが2000回クエリを行うことを意味していると仮定すると、それはますます遅くなります。現時点では、速度は1秒あたり約2〜3サーバー要求です。 – Noccz

-1

私はほとんど同じ問題を抱えていました。しかし、管理者にクエリの制限を増やさせたくないと言っているだけでなく、カウンタでループ内で残りのクエリを実行したくないという方法はありません。私は、カウンタセットを持つループでクエリを実行する2番目の方法に従うことをお勧めします。それが私がJavaで残りのクライアントを実装した方法です。

0

list changes REST APIを使用すると、結果はChangeInfo Elementsのリストとして返されます。返された結果よりも多くの結果がある場合、そのリストの最後のエントリには、trueという値を持つ_more_changesフィールドがあります。もう一度クエリを実行し、startオプションを設定して、既に受け取ったものをスキップすることができます。

関連する問題