redis celery too many connection

用django 框架,異步任務用celery,隊列用redispython

出現了這個問題,too many connectionredis

 

 Couldn't ack '5f41afc62d-a112-bef34d5de1cc', reason:ConnectionError('Too many connections',)django

Traceback (most recent call last):
  File "/srv/www/wom/env/lib/python2.6/site-packages/kombu/message.py", line 93, in ack_log_error
    self.ack()
  File "/srv/www/wom/env/lib/python2.6/site-packages/kombu/message.py", line 88, in ack
    self.channel.basic_ack(self.delivery_tag)
  File "/srv/www/wom/env/lib/python2.6/site-packages/kombu/transport/virtual/__init__.py", line 566, in basic_ack
    self.qos.ack(delivery_tag)
  File "/srv/www/wom/env/lib/python2.6/site-packages/kombu/transport/redis.py", line 152, in ack
    self._remove_from_indices(delivery_tag).execute()
  File "/srv/www/wom/env/lib/python2.6/site-packages/redis/client.py", line 1914, in execute
    self.shard_hint)
  File "/srv/www/wom/env/lib/python2.6/site-packages/redis/connection.py", line 395, in get_connection
    connection = self.make_connection()
  File "/srv/www/wom/env/lib/python2.6/site-packages/redis/connection.py", line 402, in make_connection
    raise ConnectionError("Too many connections")
ConnectionError: Too many connections
 
 
看了文檔以後,要設個變量

BROKER_POOL_LIMIT

New in version 2.3.框架

The maximum number of connections that can be open in the connection pool.異步

The pool is enabled by default since version 2.5, with a default limit of ten connections. This number can be tweaked depending on the number of threads/greenthreads (eventlet/gevent) using a connection. For example running eventlet with 1000 greenlets that use a connection to the broker, contention can arise and you should consider increasing the limit.ide

If set to None or 0 the connection pool will be disabled and connections will be established and closed for every use.blog

Default (since 2.5) is to use a pool of 10 connections.
 

CELERY_REDIS_MAX_CONNECTIONS

Maximum number of connections available in the Redis connection pool used for sending and retrieving results.
 
 

BROKER_TRANSPORT_OPTIONS

New in version 2.2.隊列

A dict of additional options passed to the underlying transport.rem

See your transport user manual for supported options (if any).文檔

Example setting the visibility timeout (supported by Redis and SQS transports):

BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 18000}  # 5 hours
要設置 max_connections 才能解決下面的問題 
相關文章
相關標籤/搜索