In the process of decoupling the batch from the database (see
SONAR-2119), the batch now starts sending a report to the server (through a web service) at the end of each project analysis. In order to be efficient and to not block both the batch and the server, those reports must be placed in a queue and consumed asynchronously - with a way to monitor and manage this activity.
- Implementing a queue where the reports sent by the batch will be placed
- Defining a "worker" mechanism to consume those reports - one by one for the moment.
- Many "actions" will be triggered when consuming a report
- The first ones that we'll be implementing to validate this concept are:
- the indexation of issues in E/S
- the update of permissions for newly created project
- the DB Cleaner mechanism that will moved from batch side to server side
- Offering a page in the administration part of SonarQube that allows to:
- See what's going on in this queue
- Offer some actions to manage this activity (like cleaning the queue, stopping a worker that looks frozen, ...etc)
– add cleanup on server start with a delete of the queue. It's a temporary mechanism which will be replaced by a fault-tolerant mechanism in a later step