Exemplo de cluster
Publicado por Diego Lopes (última atualização em 04/10/2022)
[ Hits: 3.767 ]
Homepage:
Conjunto de scripts para exemplo de cluster!
Serviços REST que tem dois nós de processamento de informação usando threads de processamento.
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()
Programa para calcular a média e a nota trimestral
Gerador palpite Mega Sena v1.0
Cronômetro com interface gráfico utilizando a biblioteca Tkinter
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (19)
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









