拆分一个大的Jira-Rest-Request

时间:2016-01-22 12:34:01

标签: java rest jira

我正在寻找机会分拆一个大请求,例如:  ISourceViewer。结果将包含> 500虫 - >它非常慢。我想用不同的请求来获取它们(对于请求的方法将使用@Asynchronous注释)但是jql需要是相同的。我不想单独搜索project1,project2 ... project10。如果有人有想法解决我的问题会很好。 谢谢:))

3 个答案:

答案 0 :(得分:0)

你能不分成两部分吗?如果您正在显示一个网页(显示您可以在没有性能损失的情况下显示的内容。如果它是一个报告,则逐渐获取所有对象并显示一次完成。

  1. 获取JQL&的总计数只需获得第2步所需的最少信息 - 假设为900
  2. 使用分页功能(maxResults = 100)进行多次通话。
  3. 处理每项请求。

答案 1 :(得分: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

当心数据应该发生变化,因此您应该做好准备,如果计算费用昂贵(特别是"总计")不应该出现,您将不会收到所有数据和分页元数据。更多Paged API

答案 2 :(得分:0)

如果您不想一次运行这两个请求并且需要按用户请求分页错误,您可以:

  1. 请将“maxResults”属性设置为您需要的数量。
  2. 在下一个请求中设置'maxResults'属性和'startAt'具有相同的值。
  3. 如果您需要获取更多数据,请使用相同的'maxResults'发出新请求,但将'startAt'更新为您在先前请求中获取的错误数。