ginipick commited on
Commit
6f8df09
Β·
verified Β·
1 Parent(s): e91d5a3

Update web.py

Browse files
Files changed (1) hide show
  1. web.py +71 -1
web.py CHANGED
@@ -1,6 +1,31 @@
1
  from http.server import HTTPServer, BaseHTTPRequestHandler
2
  import datetime
3
  import json
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
  class HealthCheckHandler(BaseHTTPRequestHandler):
6
  def do_GET(self):
@@ -20,11 +45,56 @@ class HealthCheckHandler(BaseHTTPRequestHandler):
20
 
21
  # JSON 응닡 λ°˜ν™˜
22
  self.wfile.write(json.dumps(status_info).encode())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
 
 
 
24
  def run_server(port=7860):
 
 
 
 
 
 
 
 
25
  server_address = ('0.0.0.0', port)
26
  httpd = HTTPServer(server_address, HealthCheckHandler)
27
- print(f"Starting health check server on port {port}")
 
28
  httpd.serve_forever()
29
 
30
  if __name__ == "__main__":
 
1
  from http.server import HTTPServer, BaseHTTPRequestHandler
2
  import datetime
3
  import json
4
+ import threading
5
+ import time
6
+ import requests
7
+ import logging
8
+ from urllib3.exceptions import InsecureRequestWarning
9
+
10
+ # SSL κ²½κ³  λΉ„ν™œμ„±ν™”
11
+ requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
12
+
13
+ # λ‘œκΉ… μ„€μ •
14
+ logging.basicConfig(
15
+ level=logging.INFO,
16
+ format='%(asctime)s - %(levelname)s - %(message)s'
17
+ )
18
+
19
+ # λͺ¨λ‹ˆν„°λ§ν•  URL λͺ©λ‘
20
+ URLS = [
21
+ "https://ginipick-openfree-timer1.hf.space",
22
+ "https://ginipick-openfree-timer2.hf.space",
23
+ "https://ginipick-openfree-LLM-chatgpt4.1-thinkflow.hf.space",
24
+ "https://seawolf2357-ofai-jinjavis-blog-pharm.hf.space"
25
+ ]
26
+
27
+ # ν•‘ 간격 (초) - ν—ˆκΉ…νŽ˜μ΄μŠ€ 슬립 νƒ€μž„μ•„μ›ƒλ³΄λ‹€ μ§§μ•„μ•Ό 함
28
+ PING_INTERVAL = 300 # 5λΆ„λ§ˆλ‹€ ν•‘
29
 
30
  class HealthCheckHandler(BaseHTTPRequestHandler):
31
  def do_GET(self):
 
45
 
46
  # JSON 응닡 λ°˜ν™˜
47
  self.wfile.write(json.dumps(status_info).encode())
48
+
49
+ def check_url(url):
50
+ """URL μƒνƒœλ₯Ό ν™•μΈν•˜κ³  κ²°κ³Όλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€."""
51
+ try:
52
+ # HEAD μš”μ²­μ΄ GET보닀 빠름 (λ³Έλ¬Έ 없이 ν—€λ”λ§Œ λ°˜ν™˜)
53
+ response = requests.head(
54
+ url,
55
+ verify=False, # SSL 검증 λΉ„ν™œμ„±ν™”
56
+ timeout=10, # νƒ€μž„μ•„μ›ƒ μ„€μ •
57
+ allow_redirects=True # λ¦¬λ‹€μ΄λ ‰νŠΈ ν—ˆμš©
58
+ )
59
+ status_code = response.status_code
60
+
61
+ # 200 OK인 경우 성곡
62
+ if status_code == 200:
63
+ result = f"μƒνƒœ μ½”λ“œ: {status_code}, 접속 μƒνƒœ: 접속 성곡"
64
+ else:
65
+ result = f"μƒνƒœ μ½”λ“œ: {status_code}, 접속 μƒνƒœ: 접속 μ‹€νŒ¨"
66
+ except Exception as e:
67
+ result = f"접속 μ‹€νŒ¨: {str(e)}"
68
+
69
+ logging.info(f"URL: {url} {result}")
70
+ return result
71
+
72
+ def ping_thread():
73
+ """
74
+ 주기적으둜 URL듀을 ν™•μΈν•˜μ—¬ 슬립 λͺ¨λ“œλ‘œ μ „ν™˜λ˜μ§€ μ•Šλ„λ‘ ν•©λ‹ˆλ‹€.
75
+ """
76
+ logging.info("μžλ™ ν•‘ μŠ€λ ˆλ“œ μ‹œμž‘")
77
+
78
+ while True:
79
+ for url in URLS:
80
+ check_url(url)
81
 
82
+ # λ‹€μŒ ν•‘κΉŒμ§€ λŒ€κΈ°
83
+ time.sleep(PING_INTERVAL)
84
+
85
  def run_server(port=7860):
86
+ """
87
+ ν—¬μŠ€ 체크 μ„œλ²„λ₯Ό μ‹€ν–‰ν•˜κ³  λ™μ‹œμ— λ°±κ·ΈλΌμš΄λ“œ ν•‘ μŠ€λ ˆλ“œλ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€.
88
+ """
89
+ # ν•‘ μŠ€λ ˆλ“œ μ‹œμž‘
90
+ ping_task = threading.Thread(target=ping_thread, daemon=True)
91
+ ping_task.start()
92
+
93
+ # μ›Ή μ„œλ²„ μ„€μ •
94
  server_address = ('0.0.0.0', port)
95
  httpd = HTTPServer(server_address, HealthCheckHandler)
96
+
97
+ logging.info(f"Starting health check server on port {port}")
98
  httpd.serve_forever()
99
 
100
  if __name__ == "__main__":