Workers
  • 17 May 2024
  • 3 Minutes to read
  • Contributors
  • Dark
    Light
  • PDF

Workers

  • Dark
    Light
  • PDF

Article summary

Account Capacity

The actual task of executing the robot is performed by what is called a worker. The number of workers on your account determines your capacity, i.e., how much work can be done concurrently.

Robot configurations with multiple inputs can be set to use multiple workers for faster execution. This is controlled by the Concurrent inputs on the Configuration tab.

For example, if your subscription includes three workers, you will be able to concurrently execute, e.g.:

  • Three robot configurations with one or no inputs.
  • One robot configuration with multiple inputs and Concurrent executions set to 2, and configuration with one or no inputs.

That is, some combination that adds up to 3.

Visit our price plans to see how many workers are included in each price plan.

Worker Limits

According to your price plan, your account has a set number of workers available. Under Settings / Usage you should be able to see the amount of workers allocated to your account. As you can see on the picture below, this example account has a worker account limit set to 3.
image.png

Account limit

extractor limit.png

If you utilise all the 3 workers, for example, through executing 3 robot configurations with no inputs then any configurations executed after this will remain in pending status, until workers are available. A warning message will be displayed in the executions screen for the pending execution:

You have reached your account worker limit!

Please wait for active executions to complete. For more worker capacity please contact support@dexi.io

Pipes limit

You will notice that pipes have a smaller worker limit than the total number of available workers. By default, the pipes are set up to occupy no more than the 50% of the account workers.

So in the given example, pipes can use up to 2 workers. If you utilise all of them, then the pipe worker limit will be reached, and every pipe execution after this will be pending and the following warning message will be displayed in the execution's screen:

You have reached your pipes’ worker limit!

2 workers dedicated to pipes are currently in use. Please wait for active executions to complete.

For more information regarding pipes, child executions and workers, please visit the Pipes robot settings article.

Folder limit

Dexi allows you to limit the number of workers used per folder. Meaning that the total number of workers used concurrently for robots stored in that specific folder, can not exceed the defined amount.
image.png

In the projects view, when you select a folder, the default worker usage (Max. Capacity ) is set to -1. This indicates that no limit has been set to this folder. If the Max. Capacity is set to eg.2 then executions from robots stored inside that folder will occupy only 2 workers, even if the account worker limit is more than that.

If you execute a robot inside a folder that has reached its max capacity, then the execution will remain pending and the following warning message will be displayed:

You have reached your folder’s Folder_demo capacity.

Please wait for executions inside the folder to complete or edit the folder’s max capacity.

For pipe executions, the message will be slightly different, because the system will allocate 50% of the defined Max. Capacity above for pipes (since by default pipes use 50% of the resources).

You have reached your folder’s Folder_demo capacity for pipes.

Pipes can use 1 worker of the defined folder capacity. Please wait for executions inside the folder to complete or edit the folder’s Max Capacity and restart executions inside this folder.

Worker Utilization (avoid short-lived robots)

Executing many short-lived robots concurrently, ie. robots that complete in less than ~60 seconds, can cause unpredictable utilization of the workers on your account, e.g. it can cause your workers to be under-utilized. The limitation applies to the same robot executed for multiple inputs or different robots executed concurrently.

This reason for this limitation is because the administrative overhead, albeit insignificant for low amounts of robots, adds up when running many robots/inputs of the same robot.

Hence, to ensure optimal worker utilization, always make sure that when running many robots/inputs of the same robot concurrently, that the robot runs for more than ~60 seconds. For example, instead of an Extractor robot only getting the details of one product, make sure it loops over a list of products, thereby increasing the runtime of the robot.


Was this article helpful?