2015-05-08 11 views
5

Quindi ho un progetto di django + gunicorn giocattolo. Voglio avere un modello statistico che è abbastanza grande caricato in memoria solo una volta e poi riutilizzarlo negli worker/threads.Django - gunicorn - Variabile a livello di app (condivisa tra i lavoratori)

Come/dove definire una variabile a livello di app? Ho provato a metterlo su settings.py, e anche su wsgi.py

+0

Quindi, cosa è successo quando hai provato? –

+0

la variabile può essere acceded attraverso tutta l'app, ma c'è una variabile per lavoratore in contrapposizione a una sola istanza (singleton) Eventuali suggerimenti? –

risposta

0

Non penso che tu possa (né dovrebbe). I lavoratori sono processi separati che sono biforcati prima di eseguire qualsiasi codice.

Si può inserire il "modello" (cos'è che lo rende grande?) In un DB Redis e accedervi da ciascun lavoratore da lì. L'opzione migliore sarebbe probabilmente quella di creare un servizio separato di cui eseguire una singola istanza e comunicare con HTTP o RPC dal proprio operatore (dare un'occhiata a nameko per un semplice framework di servizi (micro)

Un'altra opzione sarebbe di utilizzare un singolo operatore di Celery e fare i calcoli statistici in un'attività

Problemi correlati