我该如何处理芹菜任务中的redis连接?

时间:2012-04-12 16:02:05

标签: redis celery

我有一个芹菜服务器,可以为我的应用程序处理一些计数器

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-celery

1 个答案:

答案 0 :(得分:1)

python redis library中,您可以使用连接池。只需在其中一个模块中全局创建一个池,并将其用于每个新连接。