beweinreich commited on
Commit
b2aeedc
1 Parent(s): b7fa076

added in a kill redis clients script

Browse files
Files changed (2) hide show
  1. kill_redis.py +37 -0
  2. tasks.py +1 -2
kill_redis.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import subprocess
3
+ from dotenv import load_dotenv
4
+ from redis import Redis
5
+
6
+ load_dotenv()
7
+
8
+ REDIS_URL = os.environ['REDIS_URL']
9
+ redis_client = Redis.from_url(REDIS_URL)
10
+
11
+ def kill_all_redis_clients():
12
+ try:
13
+ # Fetch Redis URL from environment variable
14
+ if not REDIS_URL:
15
+ raise ValueError("REDIS_URL is not set in the environment variables.")
16
+
17
+ # Extract host and port from the Redis URL
18
+ redis_host = REDIS_URL.split("//")[-1].split("@")[1].split(":")[0]
19
+ redis_port = REDIS_URL.split("//")[-1].split("@")[1].split(":")[1]
20
+
21
+ # Execute Redis CLI commands to list and kill clients
22
+ client_list_command = f'redis-cli -h {redis_host} -p {redis_port} CLIENT LIST'
23
+ client_list_output = subprocess.check_output(client_list_command, shell=True).decode('utf-8')
24
+
25
+ client_ids = [line.split(' ')[0].split('=')[1] for line in client_list_output.strip().split('\n') if 'id=' in line]
26
+
27
+ for client_id in client_ids:
28
+ kill_command = f'redis-cli -h {redis_host} -p {redis_port} CLIENT KILL ID {client_id}'
29
+ subprocess.check_call(kill_command, shell=True)
30
+
31
+ print("Successfully killed all Redis clients.")
32
+
33
+ except Exception as e:
34
+ print(f"An error occurred: {e}")
35
+
36
+ if __name__ == "__main__":
37
+ kill_all_redis_clients()
tasks.py CHANGED
@@ -1,14 +1,13 @@
1
  # tasks.py
2
  import os
3
  import logging
 
4
  from dotenv import load_dotenv
5
  from celery import Celery
6
  from db.db_utils import get_connection, store_result_to_db
7
 
8
  load_dotenv()
9
 
10
- REDIS_URL = os.environ['REDIS_URL']
11
-
12
  app = Celery('tasks', broker=REDIS_URL, backend=REDIS_URL)
13
 
14
  app.conf.update(
 
1
  # tasks.py
2
  import os
3
  import logging
4
+ from redis import Redis
5
  from dotenv import load_dotenv
6
  from celery import Celery
7
  from db.db_utils import get_connection, store_result_to_db
8
 
9
  load_dotenv()
10
 
 
 
11
  app = Celery('tasks', broker=REDIS_URL, backend=REDIS_URL)
12
 
13
  app.conf.update(