Job scheduling

The client may want to start a workflow execution remotely and wait for the result while doing other work.

Installation

Install on the client side

python3 -m pip install ewoksjob[redis]

Install on the worker side

python3 -m pip install ewoksjob[worker,redis,monitor]

The communication between client and worker goes through Redis, RabbitMQ or Sqlite3. Depending on which one you choose, the redis installation option may vary. Both client and worker need access to a configuration that specifies the URL of the database and/or broker. For more information see the ewoksjob documentation.

Start a workflow

Start a worker that can execute ewoks graphs

celery -A ewoksjob.apps.ewoks worker

Start a workflow from python, possible from another machine

from ewoksjob.client import submit

workflow = {"graph": {"id": "mygraph"}}
future = submit(args=(workflow,))
result = future.get()

Start a workflow from the command line, possible from another machine

ewoks submit empty --test

Start a workflow in BLISS

In the context of Bliss

BEACON_HOST=hostname:25000 CELERY_LOADER=ewoksjob.config.EwoksLoader celery -A ewoksjob.apps.ewoks worker

Submit a workflow as usual

BEACON_HOST=hostname:25000 ewoks submit empty --test

The environment variables are needed for communication between worker and client via the message broker.

Workflow monitoring

Start a web server for monitoring jobs

flower