2012-04-12 19 views
5

Mam serwer seler, który obsługuje kilka liczników dla mojej aplikacjiJak powinienem obsłużyć moje połączenia redis wewnątrz zadań selerowych?

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) 

Wszystko działa świetnie, jednak otwiera się i zamyka połączenie Redis każdym razem moim zadaniem, biegnie. Czy istnieje lepszy sposób na obsługę połączeń? może mieć jakieś trwałe połączenie?

biegnę Ostatni Django seler

Odpowiedz

1

W python redis library można korzystać z puli połączeń. Po prostu utwórz pulę globalnie w jednym z modułów i używaj jej do każdego nowego połączenia.

+1

Czy ten obiekt zostanie udostępniony moim pracownikom selerów? – armonge

+1

Nie sądzę. Ale zostanie udostępniony wszystkim zadaniom pracownika. – ilvar

Powiązane problemy