Task Parallelization

By using parallelization, a single task can be split into multiple jobs that will be executed simultaneously.

The following attributes can be set:

Enable Parallelization
This setting controls whether parallelization shall be activated for this task.
Maximum Number of Jobs
This is the maximum number of parallel jobs that the task shall be split into.
Parallelization ValuesThis is a list of expressions (see Expressions) that will be assigned to the parallel jobs.


Implementation 

If a task is configured to support parallelization, a maximum number of jobs and a list of parallelization values is supplied. Mail & Deploy when executing the task assigns these values to individual jobs and then executes these jobs.

Example: You have a Qlik Sense App that contains 4 Sales Regions: North, East, South and West. Each sales region has sales representatives assigned and you want to create one report for each sales representative for each region. If you do not use parallelization, you could create a task that cycles (see Cycle Action) through all sales representatives, create a report document and distributes it. However, this means, that these report documents will be created sequentially, which could take a rather long time. Another approach would be to use parallelization: if you enable parallelization for that task, you can specify the maximum number of jobs to use; if we set this number to be 2, the task will be split into two jobs. In the list of parallelization values, you can then supply expressions which will be assigned to each job. We can add our sales regions here: North, East, South, and West, so we have 4 parallelization values. When Mail & Deploy executes the task, it will assign these 4 values to the 2 jobs into which the task will be split; job number 1 will get North and East, job number 2 will get South and West. In the action list of the task, you can then filter the sales region field of your Qlik Sense app to the values of the parallelization parameter by filtering to a dynamic value in an expression. After that filter action, you can just as you would without parallelization add your cycle that cycles through all currently applicable sales representatives, create a report document and distributes it.

A more detailed explanation about what is going on in the background: by enabling parallelization for a maximum number of 2 jobs, you force Mail & Deploy to split the tasks into jobs (which means to parallel executions). The list of parallelization values is used to supply parameters to these individual jobs. When the task is executed by Mail & Deploy, it first creates two jobs. Then it goes through the list of parallelization values and assigns the values you provided for each job (so that each job gets its share of the complete list of parallelization values). Then the individual jobs will be executed. If you then use a filter action in your task, you can access the list of parallelization values that have been assigned to the job and then filter the Qlik Sense data model accordingly. Here is a flow chart of what happens:

If in the above example you would set the maximum number of jobs to 4, then each job would get exactly one region assigned (and would therefore only process sales representatives of that region). Mail & Deploy assigns these parallelization values automatically and it does not have to be the case that every job has the same number of parallelization values applied; for instance, you could set the maximum number of jobs to 3; Mail & Deploy will then assign two regions to one job and one region for each of the other two jobs.

T
Team is the author of this solution article.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.