Skip to main content

Timeout and timeout action in web workflow extension

RedApp developer can define a timeout for web extension point in manifest.json file, in extensions section.

"dynamo.air.pricing:beforePricing": [
      {
        "services": [
          "com-sabre-redapp-example3-web-wf-extension-web-module-AirPriceBeforeDialogExtp",
          "com-sabre-redapp-example3-web-wf-extension-web-module-AirPriceBeforeDialogExtp2"
        ],
        "timeout": 1, (1)
        "defaultTimeoutAction": "CONTINUE" (2)
      }
    ]
  1. The timeout is defined in seconds and it can range from 1 to 1500. If you do not provide any valid value then the default 3 minutes will be used instead.

  2. You can specify the default action that will be taken should any service defined in this extension timeouts. If it is CONTINUE then the next service will be run as normal, and if it is ABORT then the execution of the entire extension point will be aborted. If you do not provide any valid value then the default CONTINUE will be used instead.

With the extension point set up in this way the timeout is going to be applied separately for each service that is defined in services and for both of them the default timeout action will be CONTINUE. It is possible to have different timeout values and default timeout action for each service and to do this the extension point has to be defined this way:

"dynamo.air.pricing:beforePricing": [
      {
        "services": [
          "com-sabre-redapp-example3-web-wf-extension-web-module-AirPriceBeforeDialogExtp",
        ],
        "timeout": 1,
        "defaultTimeoutAction": "CONTINUE"
      }, {
        "services": [
          "com-sabre-redapp-example3-web-wf-extension-web-module-AirPriceBeforeDialogExtp2",
        ],
        "timeout": 100,
        "defaultTimeoutAction": "ABORT"
      }
    ]

This way there will be two services run for dynamo.air.pricing:beforePricing extension point just like above, however they will have different timeouts and actions.