File size: 861 Bytes
aec2fdf | 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 | from __future__ import annotations
import argparse
import json
import time
from urllib import request
def ping(base_url: str) -> None:
url = base_url.rstrip("/") + "/v1/healthz"
with request.urlopen(url, timeout=10) as response:
print(json.loads(response.read().decode("utf-8")))
def main() -> None:
parser = argparse.ArgumentParser(description="Free-host keep-warm pinger for Vera bot.")
parser.add_argument("base_url", help="Public base URL, e.g. https://your-bot.koyeb.app")
parser.add_argument("--interval", type=int, default=900, help="Seconds between pings. Default: 15 minutes.")
args = parser.parse_args()
while True:
try:
ping(args.base_url)
except Exception as exc:
print(f"ping failed: {exc}")
time.sleep(args.interval)
if __name__ == "__main__":
main()
|