2012-04-12 6 views
5

Ho un server di sedano che gestisce alcuni contatori per la mia applicazioneCome devo gestire le mie connessioni redis all'interno di Tasks di sedici?

class IncrementStatsCounterTask(Task): 
    def run(self, count, shortcode, stat_type, operator_id, date, **kwargs): 
     r_server = redis.Redis(settings.REDIS_HOST) 
     key = key_mask % { 
      'shortcode': shortcode, 
      'stat_type': stat_type, 
      'operator_id': operator_id, 
      'date': date.strftime('%Y%m%d') 
     } 

     return key, r_server.incr(key, count) 

Tutto funziona alla grande, ma questo si apre e chiude la connessione Redis ogni volta il mio compito, corre. C'è un modo migliore per gestire le connessioni? forse hai una sorta di connessione persistente?

sto correndo ultima django-sedano

risposta

1

In python redis library è possibile utilizzare il pool di connessioni. Basta creare un pool globalmente in uno dei tuoi moduli e utilizzarlo per ogni nuova connessione.

+1

E questo oggetto sarà condiviso tra i miei lavoratori del celibato? – armonge

+1

Non la penso così. Ma sarà condiviso tra tutte le attività in un lavoratore. – ilvar