Re: [Python] Ping in python

2014-04-01 Per discussione Manlio Perillo
2014-03-31 23:51 GMT+02:00 Lorenzo Mainardi :

> Ciao a tutti, avrei bisogno di un consiglio.
> Dovrei mandare a intervalli regolari una serie di ping (anche 1000) a
> diversi host e gestirne le risposte. Un po' quello che fa smokeping
> (se qualcuno lo conosce e lo usa).
> Per il frontend pensavo di utilizzare roba tipo bottle o flask.
>
> Cosa mi consigliate per il backend (Quello che deve pingare)?
> Alcuni anni fa ho usato Twisted, ma ora sembra un po' "antico" e un
> po' troppo pesante. Gevent?Eventlet? Altro? Mi piace l'approccio
> asincrono :)
>
>
subprocess + ping di sistema, oppure direttamente fork+exec e quello che
vuoi per la gestione dell'I/O asincrono.

Ricorda che ping funziona usando messaggi ICMP, che richiedono privileggi
di root per poter essere usati.

> --
> LORENZO MAINARDI
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Ping in python

2014-04-01 Per discussione Giampaolo Rodola'
2014-04-01 12:02 GMT+02:00 Manlio Perillo :

> 2014-03-31 23:51 GMT+02:00 Lorenzo Mainardi :
>
> Ciao a tutti, avrei bisogno di un consiglio.
>> Dovrei mandare a intervalli regolari una serie di ping (anche 1000) a
>> diversi host e gestirne le risposte. Un po' quello che fa smokeping
>> (se qualcuno lo conosce e lo usa).
>> Per il frontend pensavo di utilizzare roba tipo bottle o flask.
>>
>> Cosa mi consigliate per il backend (Quello che deve pingare)?
>> Alcuni anni fa ho usato Twisted, ma ora sembra un po' "antico" e un
>> po' troppo pesante. Gevent?Eventlet? Altro? Mi piace l'approccio
>> asincrono :)
>>
>>
> subprocess + ping di sistema, oppure direttamente fork+exec e quello che
> vuoi per la gestione dell'I/O asincrono.
>
> Ricorda che ping funziona usando messaggi ICMP, che richiedono privileggi
> di root per poter essere usati.
>

Nota aggiuntiva: essendo gli host più di uno l'unico modo "sano" è usando
fping.


-- 
Giampaolo - http://grodola.blogspot.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Rimpiazzare Orbited

2014-04-01 Per discussione Daniele Varrazzo

Ciao,

un mio collega ha avuto la brillante idea di togliere Orbited da un 
sistema web push che abbiamo, perchè voleva passare ai websocket. Così 
dall'avere N web server python che pushavano messaggi ad un singolo 
orbited (che non ha mai fatto pio) e i client web che li ricevevano sui 
loro canali siamo passati ad avere ogni client collegato con una 
connessione websocket persistente al server. Coincidentalmente da quel 
giorno abbiamo cominciato a incontrare mille problemi e il programma non 
scala più bene, chissà come mai...


Sto provando a insistere a reintrodurre il message broker perché sono 
convinto che ci ha parato le chiap^W spalle per anni ma lui non vuole 
recedere dai websocket. Secondo me un broker ci vuole, anche per come 
immagino il futuro di quel sistema.


Fatico a trovare un rimpiazzo drop-in di orbited su websocket: qualcosa 
a cui i client web si connettono su un canale e altri processi possono 
mandare messaggi sui canali che decidono. Sapete se esiste qualcosa del 
genere o se è necessario passare ad un server AMQP (RabbitMQ etc.)? 
Conosceta Autobahn, sapete se è promettente? Vedo che usa l'ennesimo 
nuovo protocollo di message passing, WAMP invece di Stomp... oddio ma 
quanti ne servono? Altre alternative?


Scrivo qui perchè il mio collega ha letto del supporto uWSGI ai 
websocket ma io credo che si riferisca ad avere connessioni al server, 
non un message broker a sé stante. Giusto Roberto?


Insomma, Orbited è moribondo ma era stracomodo. Sapete come 
rimpiazzarlo?


Grazie mille,

-- Daniele

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Rimpiazzare Orbited

2014-04-01 Per discussione Giovanni Porcari

Il giorno 01/apr/2014, alle ore 13:14, Daniele Varrazzo  ha 
scritto:

> Ciao,
> 
> un mio collega ha avuto la brillante idea di togliere Orbited da un sistema 
> web push che abbiamo, perchè voleva passare ai websocket. Così dall'avere N 
> web server python che pushavano messaggi ad un singolo orbited (che non ha 
> mai fatto pio) e i client web che li ricevevano sui loro canali siamo passati 
> ad avere ogni client collegato con una connessione websocket persistente al 
> server. Coincidentalmente da quel giorno abbiamo cominciato a incontrare 
> mille problemi e il programma non scala più bene, chissà come mai...
> 
> Sto provando a insistere a reintrodurre il message broker perché sono 
> convinto che ci ha parato le chiap^W spalle per anni ma lui non vuole 
> recedere dai websocket. Secondo me un broker ci vuole, anche per come 
> immagino il futuro di quel sistema.
> 
> Fatico a trovare un rimpiazzo drop-in di orbited su websocket: qualcosa a cui 
> i client web si connettono su un canale e altri processi possono mandare 
> messaggi sui canali che decidono. Sapete se esiste qualcosa del genere o se è 
> necessario passare ad un server AMQP (RabbitMQ etc.)? Conosceta Autobahn, 
> sapete se è promettente? Vedo che usa l'ennesimo nuovo protocollo di message 
> passing, WAMP invece di Stomp... oddio ma quanti ne servono? Altre 
> alternative?
> 
> Scrivo qui perchè il mio collega ha letto del supporto uWSGI ai websocket ma 
> io credo che si riferisca ad avere connessioni al server, non un message 
> broker a sé stante. Giusto Roberto?
> 
> Insomma, Orbited è moribondo ma era stracomodo. Sapete come rimpiazzarlo?
> 
> Grazie mille,
> 

Daniele mi spiace ma non ho una risposta seria.

Però puoi mostrare il video al tuo collega 

https://www.youtube.com/watch?v=fmQFRrGggLA


G


___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Rimpiazzare Orbited

2014-04-01 Per discussione Walter Valenti


> 
> Fatico a trovare un rimpiazzo drop-in di orbited su websocket: qualcosa 
> a cui i client web si connettono su un canale e altri processi possono 
> mandare messaggi sui canali che decidono. Sapete se esiste qualcosa del 
> genere o se è necessario passare ad un server AMQP (RabbitMQ etc.)? 
> Conosceta Autobahn, sapete se è promettente? Vedo che usa l'ennesimo 
> nuovo protocollo di message passing, WAMP invece di Stomp... oddio ma 
> quanti ne servono? Altre alternative?
> 
> Scrivo qui perchè il mio collega ha letto del supporto uWSGI ai 
> websocket ma io credo che si riferisca ad avere connessioni al server, 
> non un message broker a sé stante. Giusto Roberto?
> 
> Insomma, Orbited è moribondo ma era stracomodo. Sapete come 
> rimpiazzarlo?
> 


orbited2.

gameclosure / orbited2 
Next generation Orbited (putting a WebSocket in every browser.) 

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Rimpiazzare Orbited

2014-04-01 Per discussione Roberto De Ioris

> Ciao,
>
> un mio collega ha avuto la brillante idea di togliere Orbited da un
> sistema web push che abbiamo, perchè voleva passare ai websocket. Così
> dall'avere N web server python che pushavano messaggi ad un singolo
> orbited (che non ha mai fatto pio) e i client web che li ricevevano sui
> loro canali siamo passati ad avere ogni client collegato con una
> connessione websocket persistente al server. Coincidentalmente da quel
> giorno abbiamo cominciato a incontrare mille problemi e il programma non
> scala più bene, chissà come mai...
>
> Sto provando a insistere a reintrodurre il message broker perché sono
> convinto che ci ha parato le chiap^W spalle per anni ma lui non vuole
> recedere dai websocket. Secondo me un broker ci vuole, anche per come
> immagino il futuro di quel sistema.
>
> Fatico a trovare un rimpiazzo drop-in di orbited su websocket: qualcosa
> a cui i client web si connettono su un canale e altri processi possono
> mandare messaggi sui canali che decidono. Sapete se esiste qualcosa del
> genere o se è necessario passare ad un server AMQP (RabbitMQ etc.)?
> Conosceta Autobahn, sapete se è promettente? Vedo che usa l'ennesimo
> nuovo protocollo di message passing, WAMP invece di Stomp... oddio ma
> quanti ne servono? Altre alternative?
>
> Scrivo qui perchè il mio collega ha letto del supporto uWSGI ai
> websocket ma io credo che si riferisca ad avere connessioni al server,
> non un message broker a sé stante. Giusto Roberto?
>

gia', pero' combinarlo con redis e una coda pub/sub e' relativamente
semplice (e soprattutto rapido). Fammi pure contattare dal tuo collega,
magari ne uscite senza un bagno di sangue...

La logica e' che l'app WSGI instaura la sessione websocket e resta in
ascolto anche su redis, ogni volta che c'e' un messaggio sul canale
websocket questo viene girato a redis, ogni volta che c'e' un messaggio su
redis viene passato al websocket. E' molto efficiente, noi lo usiamo per i
videogiochi dove la velocita' e' essenziale.


-- 
Roberto De Ioris
http://unbit.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Rimpiazzare Orbited

2014-04-01 Per discussione Daniele Varrazzo

On 2014-04-01 16:39, Walter Valenti wrote:


Insomma, Orbited è moribondo ma era stracomodo. Sapete come
rimpiazzarlo?




orbited2.

gameclosure / orbited2
Next generation Orbited (putting a WebSocket in every browser.)


È in beta da 4 anni, non è in produzione. Ma grazie :)


-- Daniele

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Rimpiazzare Orbited

2014-04-01 Per discussione Daniele Varrazzo

On 2014-04-01 16:30, Giovanni Porcari wrote:


Daniele mi spiace ma non ho una risposta seria.

Però puoi mostrare il video al tuo collega

https://www.youtube.com/watch?v=fmQFRrGggLA


Ma LOL :D

-- Daniele

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Rimpiazzare Orbited

2014-04-01 Per discussione Daniele Varrazzo

On 2014-04-01 16:38, Roberto De Ioris wrote:

Ciao,

un mio collega ha avuto la brillante idea di togliere Orbited da un
sistema web push che abbiamo, perchè voleva passare ai websocket. 
Così

dall'avere N web server python che pushavano messaggi ad un singolo
orbited (che non ha mai fatto pio) e i client web che li ricevevano 
sui

loro canali siamo passati ad avere ogni client collegato con una
connessione websocket persistente al server. Coincidentalmente da 
quel
giorno abbiamo cominciato a incontrare mille problemi e il programma 
non

scala più bene, chissà come mai...

Sto provando a insistere a reintrodurre il message broker perché 
sono
convinto che ci ha parato le chiap^W spalle per anni ma lui non 
vuole
recedere dai websocket. Secondo me un broker ci vuole, anche per 
come

immagino il futuro di quel sistema.

Fatico a trovare un rimpiazzo drop-in di orbited su websocket: 
qualcosa
a cui i client web si connettono su un canale e altri processi 
possono
mandare messaggi sui canali che decidono. Sapete se esiste qualcosa 
del

genere o se è necessario passare ad un server AMQP (RabbitMQ etc.)?
Conosceta Autobahn, sapete se è promettente? Vedo che usa l'ennesimo
nuovo protocollo di message passing, WAMP invece di Stomp... oddio 
ma

quanti ne servono? Altre alternative?

Scrivo qui perchè il mio collega ha letto del supporto uWSGI ai
websocket ma io credo che si riferisca ad avere connessioni al 
server,

non un message broker a sé stante. Giusto Roberto?



gia', pero' combinarlo con redis e una coda pub/sub e' relativamente
semplice (e soprattutto rapido). Fammi pure contattare dal tuo 
collega,

magari ne uscite senza un bagno di sangue...

La logica e' che l'app WSGI instaura la sessione websocket e resta in
ascolto anche su redis, ogni volta che c'e' un messaggio sul canale
websocket questo viene girato a redis, ogni volta che c'e' un 
messaggio su
redis viene passato al websocket. E' molto efficiente, noi lo usiamo 
per i

videogiochi dove la velocita' e' essenziale.


Capisco, grazie.

Il problema di scalabilità che stiamo avendo è che i nostri nodi 
frontend fanno *tante cose* diverse, con diversi pattern di concorrenza 
(alcune richieste web che nascono e muoiono, alcuni greenlet a lunga 
durata, uno molto assetato di cpu...) Secondo me stiamo mettendo in 
crisi lo scheduler di greenlet con troppi lavori troppo eterogenei. 
Nell'ottica di suddividere i processi in oggetti più indipendenti un 
message broker come era orbited mi ci stava troppo bene (per esempio per 
mettere in un processo esterno quel greenlet assetato: potrebbe mandare 
i messaggi che genera direttamente alle pagine web passando per il 
broker e saltando il web server).


Per la cronaca, ho fatto una prova con RabbitMQ e l'adapter stomper e 
funziona estremamente bene: i client ci si connettono via websocket, 
python attraverso stomp.py. Credo che mi orienterò per questa soluzione, 
che non è uno stravolgimento strutturale per la nostra applicazione 
(almeno è quella che proverò a spingere nelle prossime discussioni).


Grazie a tutti,

-- Daniele

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python