1 Configuration
The feature can be activated like this
$FEATURE["multithreaded_publishing"] = true; $PUBLISH_LOAD_BALANCING["threadlimit"] = 2;
Currently, the publish process will always use the configured number of threads for rendering pages, independent from the overall system load.
Currently, only one phase of the publish process – rendering of pages – is using multiple threads, when multithreaded publishing is activated.
2 Phases of the publish process
2.1 Waiting for dirt events
The publish process needs to wait until all pending dirt events have been handled.
2.2 Initialization
In this phase, the publish process collects data for calculation of the expected publish duration.
2.3 Synchronize Object Types
Changes made in the tagmap of Content Repositories are written into the Content Repository Databases.
2.4 Delete old Objects from Content Repository
Objects, that are removed from the backend (or pages taken offline) are removed from the Content Repositories.
2.5 Publish Files and Folders into Content Repository
Files, images and folders are published into the Content Repositories.
2.6 Rendering pages
All pages, that need to be republished are rendered, the content is stored in the backend database and also written into Content Repositories (if configured). This is the only phase, that uses multiple parallel threads for rendering. Saving the changes is synchronized to avoid possible DB locking problems.
2.7 Writing Pages and Files into Filesystem
All pages, images and files are written into the filesystem, if configured.
2.8 Invoking GenticsImageStore
The contents of all pages is scanned for GenticsImageStore URLs. The images are resized (if not found in the Cache) and the resized images are written into the filesystem.
2.9 Finalizing
The database transactions are committed and final cleanup is done.