-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
혹시 특정 시간에 특정 코드가 실행되게끔 할 수 있을까요?
22.12.03 19:35 작성 22.12.03 19:35 수정 조회수 622
0
예를들면 처음 코드 시작 시점으로부터
16분동안 돌아가는 프로그램에서
1. 5분후에는 'a' 출력,
2. 10분후 'b' 출력
3. 15분후 'c' 출력
이런식으로 하고 싶습니다..!
아래처럼 16분간 계속 while문 돌리면서 굉장히 비효율적이게 할 수는 있을 것 같은데 혹시 좋은 방법이 있을까 해서 여쭤봅니당..ㅎㅎ
start_time = datetime.now()
after_5min_time = datetime(start_time.year, start_time.month, start_time.day, start_time.hour, start_time.minute + 5, start_time.second)
after_10min_time = datetime(start_time.year, start_time.month, start_time.day, start_time.hour, start_time.minute + 10, start_time.second)
after_15min_time = datetime(start_time.year, start_time.month, start_time.day, start_time.hour, start_time.minute + 15, start_time.second)
interval_list = [after_5min_time, after_10min_time, after_15min_time]
end_time = datetime(start_time.year, start_time.month, start_time.day, start_time.hour, start_time.minute + 16, start_time.second)
while start_time <= end_time:
if datetime.now() == after_5min_time:
print('a')
elif datetime.now() == after_10min_time:
print('b')
elif datetime.now() == after_15min_time:
print('c')
답변을 작성해보세요.
0
좋은사람
지식공유자2022.12.04
오 직접 구현하셨군요.
아래 패키지를 추천드려요.
굉장히 직관적으로 사용할 수 있어요.
한 번 링크 들어가보세요.
https://schedule.readthedocs.io/en/stable/
import schedule
import time
def job():
print("I'm working...")
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
while True:
schedule.run_pending()
time.sleep(1)
답변 1