Exemplo de cluster
Publicado por Diego Lopes (última atualização em 04/10/2022)
[ Hits: 3.857 ]
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()
Cronômetro com interface gráfico utilizando a biblioteca Tkinter
O Editor de Texto Nano: Simplicidade no Terminal
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
[Resolvido] Meu monitor suporta 100fps. Por que o máximo é 60fps nos jogos?
Jogando "Magic" gratuitamente no Linux
Zoxide e fzf no bash para incrementar o uso do Terminal
[pedido] biglinux versao 1 (0)
A falsa sensação de que entende a tal da palavra! (1)
Eu aprendi o segredo das artes! hahaha (5)









