Bug 1031927

Summary: Stop DocBuilder from queuing too many requests to server
Product: [Community] PressGang CCMS Reporter: Matthew Casperson <mcaspers>
Component: DocBook-builderAssignee: Nobody <nobody>
Status: ON_QA --- QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 1.3CC: cbredesen
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Matthew Casperson 2013-11-19 07:07:19 UTC
Docbuilder has expanded its reporting capabilities, but this has lead to it filling the browser HTTP request queue to the PressGang server.

This means that the web UI in another tab won't be able to send requests to the PG server.

The REST calls need to be streamlined and done in a more synchronous way to prevent this queuing.

Comment 1 Matthew Casperson 2013-11-19 07:08:13 UTC
DocBuilder Next now makes a number of serial requests to the REST server. This is slower, but also means that the web ui is free to make whatever calls it needs to make.

Comment 2 Matthew Casperson 2013-11-19 07:17:08 UTC
I'll need to get the topic details in batches, and single requests take far too long in complicated specs.

Comment 3 Matthew Casperson 2013-12-08 20:31:30 UTC
DocBuilder now does three passes for information:

1. Get the specific topic revisions referenced by the spec. This is for spellchecking. Each request is done one at a time because the API doesn't allow us to return specific revisions in a bulk call.
2. Get the duplicate topics for each topic in the spec. Again, this is done one call at a time.
3. Get the info on the latest revision of the topics. This is used to populate the popovers. This is done in batches.

At any time only one REST call is in the queue though. This means that other tabs are free to call the REST server when they need to, and not when a queue of requests made by DocBuilder have finished.