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 a decoupled Camunda external task executor concept for scheduling Robot Framework RPA tasks. The concept separates task locking from the execution scheduling.

In this concept, Carrot external task client, based on camunda-external-task-client-js fetches tasks from Camunda, schedules the execution, and keeps the task locked until the executor has completed. But the Carrot external task client only completes task when the scheduling fails for unexpected reason, by creating an incident. Any other interaction with Camunda is done by the scheduled Robot Framework bot.

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

  • Python >= 3.8

    $ python --version
    Python 3.8.8
    
  • NodeJS >= 12

    $ node --version
    v12.21.0
    

Trying it out

While carrot-executor has been released at PyPI, trying out the concept requires setting up Camunda BPM Platform and Robot Framework task suites.

The easies way for that 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.

In the beginning, Camunda in this demo has both theirs and ours demo processes deployed. Let's get rid of Camunda's demo process:

  1. Open Camunda Tasklist:http://localhost:8080/camunda/app/tasklist/default/
  2. Choose Start process
  3. Choose Reset Camunda to clear 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 env with our package:

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

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

$ CAMUNDA_API_PATH=http://localhost:8080/engine-rest ROBOT_SUITE=$(pwd)/robot/reset.robot CAMUNDA_TOPIC="Delete all tasklist filters,Delete all deployments" carrot-executor
polling
✓ subscribed to topic Delete all tasklist filters
✓ subscribed to topic Delete all deployments
polling
✓ polled 2 tasks
polling
✓ polled 0 tasks

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.6.0.tar.gz (100.4 kB view details)

Uploaded Source

Built Distribution

carrot_executor-0.6.0-py3-none-any.whl (100.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: carrot-executor-0.6.0.tar.gz
  • Upload date:
  • Size: 100.4 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.6.0.tar.gz
Algorithm Hash digest
SHA256 7bf4b0b7e77741c0684b551f56cbb7a2ec7496978a83450e814711c9bf12fe13
MD5 4d72082687aed1c02fdbabe5f1b6031c
BLAKE2b-256 d1652a2e0a4ca17b21073c395741077d6b547a1545c9a4920960d218fa9d5055

See more details on using hashes here.

File details

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

File metadata

  • Download URL: carrot_executor-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 100.5 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36ed66b95ab86859e036e9e6fbbca44f833b58cd7fb6773a24de3482d1305b88
MD5 dc885f885c91e5b0703bd8ffd45877dd
BLAKE2b-256 12230b2c39d2751f889034b12e0abf9753e1eef3b03f42586eea9d8b1290b191

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