Sto passando la configurazione di una sessione dell'applicazione Pyramid da cookie
a ext:memcached
. La mia applicazione è ospitata su Heroku e ho configurato il loro memcache addon come da their documentation.Dovrei configurare `session.lock_dir` di Beaker quando si usa Memcache su Heroku?
Capisco dallo Beaker documentation che la specifica di session.lock_dir
è essenziale per impedire dog pile effect. Per essere esplicito: devo fornire un percorso di file a una directory. Beaker utilizza quindi questo come un tipo di blocco per impedire a più client che tutti cercano di impostare lo stesso valore allo stesso tempo.
Per me, questo suona come una cattiva architettura. Uno dei principali vantaggi di memcache è che funziona come servizio esterno condiviso. Associare i miei processi applicativi a un blocco associato al disco sembra l'approccio sbagliato.
Allo stesso modo, su Heroku, ho un file system ephemeral per "dyno" (che intendo per significato per processo). Quindi, mentre posso fornire un percorso di directory lock_dir
, se ogni processo utilizza una directory diversa, questo mi proteggerà dall'effetto pila di cani?
io non sono sicuro se dovrei:
- specificare un lock_dir e non preoccuparti
- tentativo di sborsare Beaker e la patch questo in qualche modo
Inoltre mi piacerebbe sapere quale schema usano altri linguaggi/framework qui. Questo è solo un problema di Beaker o altre configurazioni non legate a file soffrono dell'effetto pila di cani?
Grazie in anticipo,
James.
Sono abbastanza sicuro che il backend di memcached non richiede un 'lock_dir', l'hai provato senza? –
Ciao Michael, 'beaker.ext.memcached' richiede un lock_dir, quando si usa uno qualsiasi dei backend oltre a' memory' o 'cookie'. [Il mio traceback qui] (https://raw.github.com/gist/3278155/d744c1087445b5c18270212796026dbafe9b5760/gistfile1.pytb). – thruflo
Scusa, il mio ultimo commento non ha avuto senso. Il back-end memcached richiede un 'lock_dir'. Il traceback che ho postato è attivato da [questo codice] (https: // bitbucket.org/bbangert/bicchiere/src/d1757ad53763/bicchiere/ext/memcached.py cl-85 #). Mi sono imbattuto in [questa discussione sullo stesso problema] (https://bitbucket.org/bbangert/beaker/issue/78/clusterable-session). Sembra che la risposta sia: "specifica un lock_dir e non preoccuparti". – thruflo