2016-01-22 28 views
0

我在尋找一個機會來拆分一個大的請求,如: rest/api/2/search?jql=(project in (project1, project2, project3....project10)) AND issuetype = Bug AND (component not in (projectA, projectB) OR component = EMPTY)。結果將包含500個錯誤 - >它非常慢。我想讓他們獲得不同的請求(方法執行請求將使用@Asynchronous註釋),但jql需要相同。我不想單獨搜索project1,project2 ... project10。如果有人有解決我的問題的想法會很好。 謝謝:)拆分大Jira-Rest-Request

回答

0

你需要計算分頁首先獲得元數據

。。
rest/api/2/search?jql=[complete search query]&fields=*none&maxResults=0 

你應該得到這樣的事情:

{"startAt":0,"maxResults":0,"total":100,"issues":[]} 

所以完全不用領域,剛剛分頁的元數據。

比這樣創建搜索URI。

rest/api/2/search?jql=[complete search query]&startAt=0&maxResults=10 
    rest/api/2/search?jql=[complete search query]&startAt=10&maxResults=10 
    ..etc 

謹防數據應該改變,所以你應該準備,你不會收到所有數據,並且還分頁元,如果計算是昂貴的(exspecially「總」)不應該被提出。更多Paged API

0

你不能闖入2部分?如果您在網頁中顯示(顯示一下就可以了,而不影響性能。如果它的報告,然後讓所有的對象逐漸顯示出一次完成。

  1. 獲取數共爲JQL &剛剛得到的最少信息需要第2步 - 承擔其900
  2. 使用分頁功能(的maxResults = 100),多次調用
  3. 工作對每個請求
0

如果你不想同時運行兩個請求,並根據用戶的請求需要的錯誤的分頁,您可以:

  1. 讓與「的maxResults」屬性的請求設置爲多少你需要。
  2. 在下一個請求中設置'maxResults'屬性和'startAt'具有相同的值。
  3. 如果您需要獲取更多數據,請使用相同的'maxResults'創建新請求,但更新'startAt'爲您在先前請求中獲取的錯誤數。