boxcraft

Libreria para el Procesamiento Distribuido


Keywords
python, box
License
MIT
Install
pip install boxcraft==0.0.2

Documentation

BoxCraft

unittest license last-commit status format pyversions version


Este proyecto implementa el m贸dulo BoxCraft para establecer un sistema de procesamiento distribuido. Est谩 basado en la gesti贸n de nodos y tareas, aprovechando tanto la versatilidad de Python como la velocidad de Redis.

Caracter铆sticas

  • Sistema de nodos que permite roles de l铆der y lector para una gesti贸n eficiente.
  • Gestiona y supervisa tareas a trav茅s de un sistema din谩mico basado en Redis.
  • Sistema para administrar tareas y su estado.

Requisitos

  • Python 3.x
  • Redis instalado y configurado

Instalaci贸n

A. Clona el repositorio:

user@node: git clone https://github.com/Lucho00Cuba/boxcraft.git

B. Instalar con PIP

user@node: pip install boxcraft

Uso

from boxcraft.controller import Box
from time import sleep as time_sleep
from os import environ

def hello(instance=None, action=None):
    print(f"Action: {action} Instance: {instance}")

if __name__ == "__main__":
    try:
        tasks = { 'action': 'delete', 'name': 'poc-*', 'instances': str(["node-01", "node-02", "node-03", "node-04", "node-05"]) }
        ctx = Box()
        print(f"Node: {ctx._node_name} - Role: {ctx._role} - ID: {ctx._id}")
        # publish data
        ctx.publish(tasks)
        # runner
        while True:
            # getting data
            task = ctx.getting()
            if task == None:
                break
            else:
                print(f"Task: {task}")
                # logic to execute the task... 
                ctx.runner(target=hello, kwargs={"instance": task['instances'], "action": task['action']})
                time_sleep(2)
    except Exception as err:
        print(err)