Redis-Verbindungen nehmen auch bei Verwendung des Pools weiter zu
Posted: 13 Jan 2025, 11:09
Ich habe eine Flask-Anwendung, die Waitress als Server und Celery+RabbitMQ (als Broker) + Redis (als Backend) für die Aufgaben verwendet.
Mir ist aufgefallen, dass meine Nummer Die Anzahl der Redis-Verbindungen nimmt auch beim Einrichten eines Pools für Redis weiter zu. Die einzige Möglichkeit, sie zu löschen, besteht darin, die Anwendung zu beenden (oder in meinem Fall für Heroku die Dynos neu zu starten).
Hier ist ein Beispiel des aktuellen Codes:
Was könnte dieses Problem verursachen?
Ich habe versucht, einen Pool als solchen einzurichten:
Aber keine Lösung...
Mir ist aufgefallen, dass meine Nummer Die Anzahl der Redis-Verbindungen nimmt auch beim Einrichten eines Pools für Redis weiter zu. Die einzige Möglichkeit, sie zu löschen, besteht darin, die Anwendung zu beenden (oder in meinem Fall für Heroku die Dynos neu zu starten).
Hier ist ein Beispiel des aktuellen Codes:
Code: Select all
CLOUDAMQP_URL = os.environ.get("CLOUDAMQP_URL") or os.environ.get("RABBITMQ_URL")
HEROKU = os.environ['HEROKU']
if HEROKU == "production":
url = urlparse(os.environ.get('REDISCLOUD_URL'))
backend_url = f"redis://{url.username}:{url.password}@{url.hostname}:{url.port}"
else:
backend_url = "redis://localhost:6379/0"
redis_client = redis.Redis.from_url(backend_url)
broker_url = CLOUDAMQP_URL
app = Celery('chatbot_tasks', broker=broker_url, backend=backend_url)
app.conf.task_serializer = 'json'
app.conf.result_serializer = 'json'
app.conf.broker_pool_limit = 0
Ich habe versucht, einen Pool als solchen einzurichten:
Code: Select all
backend_url = os.environ['REDIS_URL']
pool = ConnectionPool.from_url(backend_url)