2012-04-12 55 views
5

我有一個處理一些櫃檯爲我的應用我應該如何處理芹菜任務中的redis連接?

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) 

這一切的偉大工程芹菜服務器,但是這打開和關閉每一個我的任務,運行時間Redis的連接。有沒有更好的方式來處理連接?也許有某種持久連接?

我運行最新的Django芹菜

回答

1

python redis library您可以使用連接池。只需在其中一個模塊中全局創建一個池,並將其用於每個新連接。

+1

這個對象會在我的芹菜工作者中共享嗎? – armonge 2012-04-13 16:12:33

+1

不要這樣想。但它將在工人的所有任務中共享。 – ilvar 2012-04-13 20:09:03