Skip to main content

Camunda external task Robot Framework execution scheduler

Technology preview.

carrot-executor is an opinionated decoupled Camunda external task executor concept for orchestrating Robot Framework RPA tasks with Camunda. The concept decouples task locking and execution scheduling from bot execution.

In this concept, the Carrot external task client, based on camunda-external-task-client-js, fetches configured external tasks from Camunda, schedules their execution, and keeps the tasks locked at Camunda until their execution has been completed. Once the execution has started, all interaction with execution and Camunda is done by the executing Robot Framework bot, mostly by using dedicated Robot Framework listener and keyword library.

This initial preview provides support for local parallel task execution, but the concept is designed to support also remote executors, like parameterized Nomad tasks, CI systems, Docker or even Robocloud API.

Requirements:

  • Docker with Docker Compose for Camunda

  • Python >= 3.8 for executing Robot Framework

    $ python --version
    Python 3.8.8
    
  • NodeJS >= 12 for executing the external task client

    $ node --version
    v12.21.0
    

Trying it out

While carrot-executor itself can be installed from PyPI, trying out the concept requires setting up Camunda BPM Platform and having the example Robot Framework task suites.

The easiest way for all this is to clone or download the project repository and starting the preconfigured Camunda with Docker Compose:

$ git clone https://github.com/datakurre/carrot-executor
$ cd carrot-executor
$ docker-compose up

After everything is ready, there should be Camunda running at http://localhost:8080/camunda with username demo and password demo.

By default, our Camunda container has both theirs and ours demo processes deployed. Let's get rid of their demo processes:

  1. Open Camunda Tasklist: http://localhost:8080/camunda/app/tasklist/default/
  2. Choose Start process
  3. Choose Reset Camunda to clean state and
  4. Press Start

The started process could now be completed with the help of carrot-executor. For that we need to create a new Python environment with our package:

$ python -m venv my-carrot-executor
$ source my-carrot-executor/bin/activate
$ pip install carrot-executor

The executor may now be started with parameterizing it to complete tasks from the process we started:

$ CAMUNDA_API_BASE_URL=http://localhost:8080/engine-rest ROBOT_SUITE=robot/reset.robot CAMUNDA_TOPIC="Reset tasklist filters,Reset deployments" carrot-executor
polling
✓ subscribed to topic Reset tasklist filters
✓ subscribed to topic Reset deployments
polling
✓ polled 2 tasks
polling
✓ polled 0 tasks

By default, the executor executes the task name matching with the subscribed topic name. This can be overridden with environment variable ROBOT_TASK. Setting the variable empty, should execute full suite.

Metadata

Release files for carrot-executor 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for carrot-executor 0.8.0
File Size Uploaded
carrot-executor-0.8.0.tar.gz 128.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for carrot-executor 0.8.0
File Interpreter ABI Platform
carrot_executor-0.8.0-py3-none-any.whl Python 3 none any Details

Total release size: 256.6 kB

Release files / carrot-executor-0.8.0.tar.gz

Download URL carrot-executor-0.8.0.tar.gz
Size 128.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fb76c553f344ce6ea310024300afbf9054e451c7862d99c795308ace455d86c8
BLAKE2b-256 checksum
How to use checksums
161848d2113e20e522c4d7e52e8bea4258bb8c0f97853da25294d4bea40b666e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.5 CPython/3.8.9 Linux/5.4.112

Release files / carrot_executor-0.8.0-py3-none-any.whl

Download URL carrot_executor-0.8.0-py3-none-any.whl
Size 128.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae8f93f013bfa9af156bafff45ba78c30dd4ca94affd4f05c87424b09060099b
BLAKE2b-256 checksum
How to use checksums
cf1f1bbbfd8115e9e8b1e3c66dcbb34d9cc983007a4c302ec42b7b092c6f5e71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.5 CPython/3.8.9 Linux/5.4.112

Release history Release notifications | RSS feed

This release

0.8.0 This release

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.6

2 release files

0.6.5

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page