Asynchronous task parameters

Configuring Change Request Creation

By default, FireFlow creates change requests asynchronously. This enables you to complete other tasks while FireFlow creates the change request. If desired, you can disable this. When asynchronous change request creation is enabled, you can configure the length of time FireFlow has to create the change request before the action will timeout. The default timeout value is 600 seconds (10 minutes).

Configuration Parameter Name Value
CallTicketCreationAsync

0. To disable asynchronous change request creation.

1. To enable asynchronous change request creation. (Default)

AsyncTicketCreationTimeout

The desired timeout value, in seconds.

The default value is 600 (10 minutes).

Enabling/Disabling Asynchronous Initial Plan

To control the initial planning phase, see Configuring Initial Planning (see Configuring Initial Planning).

Enabling/Disabling Asynchronous Sub-Request Creation

At the end of the Initial Planning stage in the change request lifecycle, FireFlow creates a sub-request for each affected device. By default, FireFlow creates sub-requests synchronously.

If desired, you can enable asynchronous sub-request creation. This enables you to complete other tasks while FireFlow creates the sub-requests. When asynchronous sub-request creation is enabled, after initial planning, the Home page appears with a link to the parent request and sub-requests displayed in a message at the top of the page.

Configuration Parameter Name Value
CallSubTicketCreationAsync

0. To disable asynchronous sub-request creation. (Default)

1. To enable asynchronous sub-request creation.

Enabling/Disabling Asynchronous Risk Checks

At the beginning of the Approve stage in the change request lifecycle, FireFlow performs a risk check. By default, FireFlow performs this risk check asynchronously. This enables you to view and handle the change request while FireFlow performs the risk check. If desired, you can disable this.

Configuration Parameter Name Value
CallRiskCheckAsync

0. To disable asynchronous risk checks.

1. To enable asynchronous risk checks. (Default)

Enabling/Disabling Asynchronous Work Order Creation

At the beginning of the Implement stage in the change request lifecycle, FireFlow creates a work order for each change request (in case of sub-requests, FireFlow creates a work order for each sub-request). By default, FireFlow creates the work order asynchronously. This enables you to view and handle the change request while FireFlow creates the work order. If desired, you can disable this.

Configuration Parameter Name Value
CallWorkOrderAsync

0. To disable asynchronous work order creation.

1. To enable asynchronous work order creation. (Default)

Configuring Background Task Prioritization

FireFlow performs the following background tasks:

Task Worker Task Description
CreateTicketWorker

Creating Change Requests

Note: This includes creating sub-requests when asynchronous sub-request creation is enabled.

InitialPlanWorker

Performing Initial Planning

RiskCheckWorker

Performing Risk Checks

WorkOrderWorker

Creating Work Orders

SendEmailWorker

Sending Emails

Each of these tasks are performed by general workers. By default, creating change requests is executed by the higher priority general worker, and performing initial planning, performing risk checks, creating work orders, and sending emails are executed by the lower priority general worker. If desired, you can change this behavior in the following ways:

  • Change which task workers are executed by which general worker.
  • Create a custom general worker (which you can assign the task workers you desire).

Each general worker has the following elements:

Element Description
niceLevel

The priority of the worker. A higher number means the worker is a lower priority. Valid values are between 8 and 19.

numOfWorkers

The number of tasks that this general worker can execute in parallel.

workers

A list of the task workers performed by the general worker.

Note: When configuring general workers, there is a risk of overloading the machine. When in doubt, contact AlgoSec support.

Parameter name: GeneralWorkers

Value: A copy of the default or current configuration, with the desired changes.

See the examples below for details.

The default value is as follows:

{"HighPriority": {

"niceLevel": 8,

"numOfWorkers": 3,

"workers": [ "CreateTicketWorker" ] },

"RegularPriority": {

"niceLevel": 10,

"numOfWorkers": 3,

"workers": [

"InitialPlanWorker", "SendEmailWorker", "WorkOrderWorker", "RiskCheckWorker", "ValidationWorker" ] } }

Example 1: The following value configures initial planning to be executed by the higher priority general worker. The change appears in bold.

{"HighPriority": {

"niceLevel": 8,

"numOfWorkers": 3,

"workers": [ "CreateTicketWorker", "InitialPlanWorker" ] },

"RegularPriority": {

"niceLevel": 10,

"numOfWorkers": 3,

"workers": [

"SendEmailWorker", "WorkOrderWorker", "RiskCheckWorker", "ValidationWorker" ] } }

Example 2: The following value configures a lower priority custom general worker LowPriority, and the task workers for performing risk checks and change validation were moved to this general worker (and will therefore be performed at a lower priority). The change appears in bold.

{"HighPriority": {

"niceLevel": 8,

"numOfWorkers": 3,

"workers": [ "CreateTicketWorker" ] },

"RegularPriority": {

"niceLevel": 10,

"numOfWorkers": 3,

"workers": [

"InitialPlanWorker", "SendEmailWorker", "WorkOrderWorker" ] },

"LowPriority": {

"niceLevel": 12,

"numOfWorkers": 3,

"workers": [

"RiskCheckWorker", "ValidationWorker" ] } }

Configuration Parameter Name Value
GeneralWorkers

A copy of the default or current configuration, with the desired changes.

Note: There is no prioritizing workers within the same general worker.

Note: If a specific task worker is not defined in any of the general workers, and it is enabled, a new general worker named "default" will be created to perform this task.