I am currently trying to get behind the execution of a rollout task as a background task. The official cq5 documentation states, that the rollout task is splitted into jobs. As far as I understand, following process takes place, when submitting the rollout task as a background job:
- the request gets an additional parameter "sling:bg=true", which is then checked in the BackgroundServletStarterFilter
- the BackgroundServletStarterFilter wrapps the original request and response, alongside the requestProcessor into a BackgroundRequestExecutionJob, which is then submitted to the execution engine
- the execution engine is using the threadpoolexecutor to run the jobs
So it seems to me here, that the rollout task is executed as a single job and that there is no splitting taking place.
Am I missing something? Is there another hook, which actually splits one rollout tasks into several jobs?
Thanks and regards,
The steps you have mentioned is correct, There in another hook wherin actual split happens after execution engine run the job. As you may known dynamic relationship called LiveRelationship is established between each live copy and blueprint resource. The LiveRelationship gets effective with the process called rollout. The execution engine kick off executing page rollout by using RolloutManager and it has configured threadpool size. Enable custom logger with debug for "com.day.cq.wcm.msm.impl" you will see rollout executed from various process.