seawolf2357 commited on
Commit
4a056c9
·
verified ·
1 Parent(s): be19db7

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +16 -23
app.py CHANGED
@@ -1,35 +1,29 @@
1
  import gradio as gr
2
- import aiohttp
3
- import asyncio
4
  import threading
 
5
 
6
- # 비동기적으로 외부 URL에 접속하는 함수를 정의합니다.
7
- async def check_connection(url):
8
  try:
9
- async with aiohttp.ClientSession() as session:
10
- async with session.get(url) as response:
11
- status = f"URL: {url} 상태 코드: {response.status}, 접속 상태: {'접속 성공' if response.status == 200 else '접속 실패'}"
12
- print(status)
13
- return status
14
  except Exception as e:
15
  status = f"URL: {url} 접속 실패: {str(e)}"
16
- print(status)
17
- return status
18
 
19
- # 타이머를 사용하여 정해진 주기로 비동기 함수를 반복 실행합니다.
20
- async def start_timer(urls, interval):
21
- while True:
22
- for url in urls:
23
- if url: # URL이 비어 있지 않으면 체크
24
- await check_connection(url)
25
- await asyncio.sleep(1) # 각 URL 체크 후 1초 대기
26
- await asyncio.sleep(interval - len(urls)) # 모든 URL 체크 후 interval에서 이미 소비된 시간을 뺀 만큼 대기
27
 
28
  # 타이머 시작 함수를 Gradio의 입력과 함께 연결합니다.
29
  def setup_timer(interval, *urls):
30
  interval_seconds = interval * 60 # 분을 초로 변환
31
- # 비동기 작업을 별도의 스레드에서 실행
32
- threading.Thread(target=asyncio.run, args=(start_timer(urls, interval_seconds),)).start()
 
33
  return "타이머가 설정되었습니다."
34
 
35
  # Gradio UI 컴포넌트를 정의합니다.
@@ -89,6 +83,5 @@ app = gr.Interface(
89
  ],
90
  cache_examples=False # 캐시 비활성화
91
  )
 
92
 
93
- if __name__ == "__main__":
94
- app.launch()
 
1
  import gradio as gr
2
+ import requests
 
3
  import threading
4
+ import time
5
 
6
+ # 외부 URL에 접속하는 함수를 정의합니다.
7
+ def check_connection(url):
8
  try:
9
+ response = requests.get(url)
10
+ status = f"URL: {url} 상태 코드: {response.status_code}, 접속 상태: {'접속 성공' if response.status_code == 200 else '접속 실패'}"
 
 
 
11
  except Exception as e:
12
  status = f"URL: {url} 접속 실패: {str(e)}"
13
+ print(status)
14
+ return status
15
 
16
+ # 타이머를 사용하여 정해진 주기로 함수를 반복 실행합니다.
17
+ def start_timer(url, interval):
18
+ threading.Timer(interval, start_timer, [url, interval]).start()
19
+ check_connection(url)
 
 
 
 
20
 
21
  # 타이머 시작 함수를 Gradio의 입력과 함께 연결합니다.
22
  def setup_timer(interval, *urls):
23
  interval_seconds = interval * 60 # 분을 초로 변환
24
+ for url in urls:
25
+ if url: # URL이 비어 있지 않으면 타이머 시작
26
+ start_timer(url, interval_seconds)
27
  return "타이머가 설정되었습니다."
28
 
29
  # Gradio UI 컴포넌트를 정의합니다.
 
83
  ],
84
  cache_examples=False # 캐시 비활성화
85
  )
86
+ app.launch()
87