BoxCraft
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)