Configuring parallel product model synchronization

Parallel product model synchronization can be configured through configuration parameters. If you require further customization, you can modify Gosu code.

Parameters

Parallel product model synchronization can be configured through configuration parameters.
  • ParallelizedProductModelSyncEnabled – Enable parallel product model synchronization.
  • MaxProductModelSynchThreadPoolSize – Maximum number of threads spawned per request during parallel product model synchronization.
  • MinNumberOfCoverablesToParallelizeProductModelSync – The minimum number of coverables on a policy period required to trigger parallel product model synchronization.
  • ParallelProductModelSyncTimeoutPerCoverable – The number of milliseconds per coverable to wait for parallel product model synchronization to complete before PolicyCenter reports an error.

For more information about these parameters, see Product model parameters.

Gosu code

The default implementation of shouldParallelizeProductModelAvailabilitySync enables synchronization for any commercial product with at least the minimum number coverables specified by the MinNumberOfCoverablesToParallelizeProductModelSync parameter.

In the base configuration default, each thread operates over a coverable and its clauses of a particular type. For example, one thread operates on the coverages on vehicle1, another on the conditions on vehicle1, another thread does the same for vehicle2. Through configuration, you can change both when parallel product model synchronization is triggered and the granularity of what each thread operates on.

If you require different granularity as to when parallel product model synchronization occurs, you can modify the shouldParallelizeProductModelAvailabilitySync method in PolicyPeriodBaseEnhancement. For example, if the requirements for triggering synchronization vary by product, you can define a method for these requirements in the PolicyLineMethods class. Define the requirements for each product in PolicyLineMethods inheritor classes.

If you require different granularity as to what each thread operates on, you can customize the createProductModelCheckTasks method in the JobProcess class. This method performs the work of each thread. You can customize this method and implement new tasks.