Understanding the differences between Runners Desktop and Runners Background in Python RPA

This is a discussion topic for the original post at Understanding the differences between Runners Desktop and Runners Background in Python RPA - Botcity | Blog

There are these two types of runners to consider: Runners Desktop (that used to be called RPA Runners) and Runners Background. And within our Python RPA context, we can say that runner is what manages the execution of the automated process, prepares the execution environment and monitors the tasks performed. Understanding this concept, let’s understand each one of these types of runners.

Runners Desktop are used to automate tasks that would normally be performed by human beings from start to finish and that require GUI (Graphical User Interface), it needs interaction with one or more graphical interfaces, for example: filling out forms, interaction with systems such as SAP, TOTVS, among others.

Also, an important point to understand is that, as the Runner Desktop is used for automation to be executed on the user’s computer, we can only run one at a time, otherwise we would have processes conflicts on the computer’s processor.

Runners Background are used to build any kind of automation that does not necessarily require a graphical interface. Some example are headless web automations, crawlers, data processing, reporting, integration between different systems through APIs, and others.

The highlight in this case is that these automations run in the background, without the need for human interaction and with great potential for parallelism.

To enable or disable background execution in your project, set the headless option according to the following lines of code at the beginning of your project:

For Java projects:

public void action(BotExecution botExecution) {
    try {
        // Configure whether or not to run on headless mode
        setHeadless(false);
    }
}

For Python projects:

class Bot(WebBot):
    def action(self, execution=None):
        # Configure whether or not to run on headless mode
        self.headless = False

You can also find these guidelines in our documentation.

Let’s take a look at a summary of the characteristics:

Types of Runners Requires GUI Execution can be done in the background Allows parallelism
Runners Desktop
Runners Background

So, have you chosen which type of runner works best for your Python RPA automation?