guillotina_hive

Guillotina addon to split actions into smaller bits


Keywords
asyncio, REST, Framework, transactional
License
BSD-3-Clause
Install
pip install guillotina_hive==1.1.0.dev0

Documentation

Introduction

guillotina_hive is a task runner whose main goal is to provide a mechanism to iterate through all the content on a database as quickly as possible.

To accomplish that end, hive integrates with container orchestrators(k8s or nomad) to schedule jobs on and retrieve results from those jobs.

Installation

With pip:

pip install guillotina_hive

Guillotina configuration

Example here with json:

"applications": ["guillotina_hive"],
"hive": {
    "default_image": None,
    "default_namespace": "hive",
    "orchestrator": "k8s",
    "cluster_config": {},
    "guillotina_default": {
        "entrypoint": None,
        "volumes": None,
        "volumeMounts": None,
        "envFrom": None
    },
    'quota': None
}

Settings explained

  • default_image: default image to use for jobs to run with
  • default_namespace: cluster namespace to use
  • orchestrator: k8s or nomad
  • cluster_config: what to configure aioclustermanager with
  • guillotina_default: default configuration for guillotina jobs
  • quota: define quote on cluster namespace

Defining a job

We use decorators to provide tasks:

from guillotina_hive.decorators import hive_task
@hive_task(name='something')
async def something(arg1, arg2):
    return foobar

You can also use application settings:

{
    "calculate-numbers": "guillotina_hive.tests.tasks.calculate_numbers"
}