Attualmente sto cercando di scalare gevent-socketio tra più lavoratori con il server gunicorn utilizzando il lavoratore socketio.sgunicorn.GeventSocketIOWorker. Sto usando websocket quando esiste altrimenti sto forzando il polling XHR (per IE ecc.).lavoratori multipli con gevent-socketio non riesce con il trasporto XHR-polling a causa di sessioni
Il polling XHR richiede una sessione per tenere traccia dei seguenti sondaggi ma non appena passo da uno a due o più lavoratori le richieste iniziano a espandersi tra loro, il che significa che lo stato viene perso e tutto si interrompe.
penso che le seguenti righe di codice è rilevante: https://github.com/abourget/gevent-socketio/blob/master/socketio/handler.py#L104-106 suppongo ho bisogno di qualche altro motore di memorizzazione, ad esempio redis che sto usando per regolari PubSub-azioni, ma questo è profondo all'interno della libreria vera e propria.
Quindi la mia domanda è: come faccio ad andare dalla memorizzazione delle sessioni in memoria di un altro motore di back-end a livello globale nella mia applicazione (lo fa a ignorare con grazia il codice di sessione nel link qui sopra?) , senza dover modificare la libreria stessa? Something like PHP's session directives in php.ini. Suppongo che si possa sostenere che questa è una domanda Python molto generica, ma ho problemi a trovare informazioni rilevanti, e sono anche sicuro che funzionerà con questa libreria.
Oppure, in alternativa, come utilizzare il trasporto xhr-polling di gevent-socketio su diversi server e dipendenti (senza appiccicosità)?
Grazie!
Solo un'idea: mantenere informazioni specifiche della sessione nei cookie? Una specie di RESTO. –
@ moodh Hai mai risolto questo? Inoltre, molti lavoratori aiutano davvero? Gevent stesso svolge un ottimo lavoro gestendo già molte chiamate in un singolo ciclo di eventi. – pors
No, mi sono arreso e ho iniziato a utilizzare http://pusher.com/ invece. Ci sono alcuni biglietti in gevent-socketio (https://github.com/abourget/gevent-socketio/issues/112) relativi a questo problema, ma non so fino a che punto siano arrivati. Scusa :) – moodh