2016-01-22 51 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'为您在先前请求中获取的错误数。