Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Improve Jira Cloud API response time

Martin Pernollet
Contributor
August 7, 2018

Hi,

 

I am using JRJC to fetch issues of a project via the Rest API to perform excel reports. Great java library by the way.

I encounter a very slow response time - less than 1 issue per second. How can I improve this?

My jira client basically

  1. Execute JQL to retrieve the list of open epics using SearchRestClient
  2. For each epic, get details using IssueRestClient
  3. For each epic, get children issues using SearchRestClient
  4. For each child issue, get details using IssueRestClient

 

To keep things simple I let the client wait for each query before executing another query :

SearchResult res = searchClient

        .searchJql("project=" + project + " and issuetype=Epic")

        .get();

Then I get details with issue client :

Issue issue = issueClient.getIssue(epic.getKey()).get();

I need 15 minutes to fetch around 300 issues. 

I am surprised because Jira Cloud itself has no problem displaying the project content. 

Would my request be faster if I dynamically created a filter? I presume filter are similar to SQL views or index behind the scene.

 

JRJC version : 2.0.0-m2

 

1 answer

0 votes
Alexey Matveev
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 7, 2018

Hello,

I use multithreading to imporove the overal result time. it helps a lot. 

Martin Pernollet
Contributor
August 7, 2018

Yes, I presume having 100 thread could help go 100 time faster depending on server side limitation.

Isn't it too bad a performance to have 1 sec delay between two requests in one thread? In case the limitation is configured server side, will it be very useful to parallelize queries?

Alexey Matveev
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
August 7, 2018

I also have about 1 sec delay in a single thread. And I wish it were faster. For example, I found out that getting worklogs by the Tempo Rest Api works faster than getting worklogs by the Atalssian Rest Api. Maybe Tempo servers are less loaded than Atlassian servers or there can be other reasons. 

But basically I use multiple threads. I do development with the Java language. I wrote abstract classes to handle multithreading by fork join, and then I easily connect any rest call to this abstract classes to get multithreading functionality.

I want to write an article here about it if I have time.

Like • robert Mugabuhamye likes this
Martin Pernollet
Contributor
August 22, 2018

Thanks you - this sounds to be a good way to improve response time.

For the moment I am discussing with Atlassian support about this 1 second delay - I will let you know their proposals to have a better performance.

I am definitely interested by your article! 

Ligia Merciu
Contributor
July 10, 2019

@Martin Pernollet did you get some useful information from Atlassian on this topic? Please, share with us.

@Alexey Matveev Did you find the time to write down that article? Please share!

 

Thanks, guys!

Like • robert Mugabuhamye likes this

Suggest an answer

Log in or Sign up to answer