File size: 794 Bytes
4efde5d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import dotenv
dotenv.load_dotenv()

from utils.logger import logger
import run_agent_background
from services import redis
import asyncio
from utils.retry import retry
import uuid


async def main():
    await retry(lambda: redis.initialize_async())
    key = uuid.uuid4().hex
    run_agent_background.check_health.send(key)
    timeout = 20  # seconds
    elapsed = 0
    while elapsed < timeout:
        if await redis.get(key) == "healthy":
            break
        await asyncio.sleep(1)
        elapsed += 1

    if elapsed >= timeout:
        logger.critical("Health check timed out")
        exit(1)
    else:
        logger.critical("Health check passed")
        await redis.delete(key)
        await redis.close()
        exit(0)


if __name__ == "__main__":
    asyncio.run(main())