Asynchronous and distributed scheduling of Ewoks workflows from python
Project description
ewoksjob
Utilities for job scheduling of Ewoks workflows.
Ewoks has different interfaces to execute an ewoks workflow: python API, CLI, REST API, Qt GUI, Web GUI.
Ewoksjob provides an ewoks interface for asynchronous and distributed scheduling of ewoks workflows from python.
Note that ewoksjob distributes the execution of workflows while ewoksdask distributes the execution of tasks in a workflow. So in the context of workflows, job scheduling exists on two levels.
The primary clients that need to schedule workflows are
- Ewoksserver: web backend for ewoks.
- Bliss: the ESRF beamline control system.
- Daiquiri: web backend for Bliss.
Installation
Install on the client side
pip install ewoksjob[fullclient]
The optional fullclient
install option should be used when you want full client-side capabilities,
for exampe dereference URL's of ewoks task results.
Install on the worker side
pip install ewoksjob[worker]
Tests
pytest --pyargs ewoksjob
The test environment needs redis-server
(e.g. conda install redis-server
).
Getting started
Start a worker pool that can execute ewoks graphs
examples/worker.sh
Start a workflow on the client side
python examples/job.py
Adapt the three URL's as needed (ewoks events, celery message broker, celery job result storage).
Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.