Skip to main content

Camunda external task Robot Framework execution scheduler

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carrot-executor-0.7.1.tar.gz (102.0 kB view details)

Uploaded Source

Built Distribution

carrot_executor-0.7.1-py3-none-any.whl (101.9 kB view details)

Uploaded Python 3

File details

Details for the file carrot-executor-0.7.1.tar.gz.

File metadata

  • Download URL: carrot-executor-0.7.1.tar.gz
  • Upload date:
  • Size: 102.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.9 Linux/5.4.112

File hashes

Hashes for carrot-executor-0.7.1.tar.gz
Algorithm Hash digest
SHA256 399ebe6f0d7bab519f07d5bda34115edcf3be9e35ef88fe8c75454e8d47d03a5
MD5 4b2c376f2407898b6852a28b6308b8dc
BLAKE2b-256 8dc45ecf503d73064eb6294712e77a0051349ae6bc8c6b51b8bcd3e1ef3af6dc

See more details on using hashes here.

File details

Details for the file carrot_executor-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: carrot_executor-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 101.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.5 CPython/3.8.9 Linux/5.4.112

File hashes

Hashes for carrot_executor-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 eb06657e4ba2e580ead67192f49689c83ce2f419e475cb18f3a587daea159c16
MD5 5c1885f2a9ae284bdc901af187047054
BLAKE2b-256 e97c4169b25ecb897f9f24f7ee5b9a34f22da31d5ef537115a89a68cf22535b0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page