2012-04-12 94 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