Exemplo de cluster

Publicado por Diego Lopes (última atualização em 04/10/2022)

[ Hits: 3.165 ]

Homepage:

Download app.zip




Conjunto de scripts para exemplo de cluster!
Serviços REST que tem dois nós de processamento de informação usando threads de processamento.

  



Esconder código-fonte

from flask import Flask, redirect, request
import socket
import random

'''
Configuração de acesso ao cluster de processamento
'''
HOSTCLUSTER='127.0.0.1'
PORTCLUSTER=5001
PORTCLUSTER2=5002

con =socket.socket(socket.AF_INET,socket.SOCK_STREAM)
con.connect((HOSTCLUSTER,PORTCLUSTER))

con2 = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
con2.connect((HOSTCLUSTER,PORTCLUSTER2))


#nocluster=0

def conexaoCluster2(dados,con2):
   print(type(((dados['nome']).encode())))
   paylod = '{}\r\n'.format(dados['nome']).encode(encoding = 'UTF-8')
   print(paylod)
   con2.send(paylod)

def conexaoCluster(dados,con):
    print(type(((dados['nome']).encode())))
    #con.send(b'\r\n')
    paylod = '{}\r\n'.format(dados['nome']).encode(encoding = 'UTF-8')
    print(paylod)
    print(type(paylod))
    con.send(paylod)
    #con.sendall()
    #con.close()

app = Flask(__name__)

@app.route('/')
def index():
    return 'Dados entregues ao Cluster'

@app.route('/save', methods=['POST'])
def save():

    dados = request.get_json()
    print(dados)
    if(random.randint(0, 1)==0):
        conexaoCluster(dados,con)
        #nocluster=nocluster+1
    else:
       conexaoCluster2(dados,con2)
       #nocluster=nocluster-1
    return redirect('/')

app.run(host='0.0.0.0')



#Nó1/Nó2
import socket
import time
from threading import Thread

class ProcessoCluster(Thread):

    def __init__(self, dado):
        Thread.__init__(self)
        self._dado= dado

    def run(self):
        print('Processando {}'.format(self._dado))
        time.sleep(10)
        print('Dado {} Processado'.format(self._dado))

HOST=''
PORT=5001

tcp = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
tcp.bind((HOST,PORT))
tcp.listen(10)

print('---------Iniciando Nó de Processamento--------------')
while True:
    con, client =tcp.accept()
    print('Recebendo dados!!!')
    while True:
        msg = con.recv(1024)
        if not msg: break
        processo = ProcessoCluster(msg)
        processo.start()
        con.send(b'Fim do processo\r\n')

    print('Finalizando conexão')
    con.close()





Scripts recomendados

Jogo da forca criado em Python

Painel com botões desligar, reiniciar, logoff e bloquear tela

Consumo de memória por processo

Script para comunicação OBD2

pyTube v1.1


  

Comentários
[1] Comentário enviado por maurixnovatrento em 23/10/2022 - 17:01h


Bem elaborado. Muito bom.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts