Skip to content

DiamondLightSource/indigoapi

Repository files navigation

CI Coverage PyPI License

indigoapi

An API for small fast data analysis jobs at Diamond Light Source

This is where you should write a short paragraph that describes what your module does, how it does it, and why people should use it.

Source https://github.com/DiamondLightSource/indigoapi
PyPI pip install indigoapi
Docker docker run ghcr.io/diamondlightsource/indigoapi:latest
Releases https://github.com/DiamondLightSource/indigoapi/releases

This is where you should put some images or code snippets that illustrate some relevant examples. If it is a library then you might put some introductory code here:

from indigoapi import __version__

print(f"Hello indigoapi {__version__}")

Or if it is a commandline tool then you might put some example commands here:

To start the api server run in dev mode:

uvicorn indigoapi.main:start_api --reload --factory --host 127.0.0.1 --port 8000

The structure of this app is defined below. IndigoAPI can add jobs to the queue in one of two ways. Either you send a request, via the client or any http request to the API endpoint which adds it to the queue.

Alternatively jobs can be added automatically by listening to a RabbitMQ message stream.

Either way jobs are added to the queue and run first-in-first-out. Once jobs are run, results can be returned to the client or via a reuqest with the specific job uuid.

Results are kept for a defined period of time, periodically the expired results are checked and removed.

         HTTP Client ────────
              │             │
              ▼             │
          IndigoAPI         │
              │             │
              ▼             ▼
        QueueManager ──► Results
              │             
              │          
              │         
              │
              ▼
            Workers
              ▲
              │

RabbitMQ ──► RabbitListener

python -m indigoapi --version

About

An API for small fast data analysis jobs at Diamond Light Source

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors