파이썬으로 N 초마다 함수 실행하는 라이브러리는 여러개다.
sched, scheduler, APScheduler, threading.Timer ... 정도 있는데,
sched는 내장 라이브러리기 때문에 별도의 설치없이 사용할 수 있다.
s = sched.scheduler( time.time, time.sleep() ) #로 S 인스턴스 생성 후,
s.enter ( time, priority, function, argment, kwargs) #를 하면 time 초 후에 함수가 1번 입력되고
s.run() #를 하면 입력된 함수가 실행된다.
그래서 main 함수에서 위 구문을 실행하고,
fuction 내부에서 스스로를 불러줘야 한다.
argument 가 없는 함수일 경우, ()로 대체했더니 실행 가능했다.
가령 예를 들면
1 2 3 4 5 6 7 |
def a(): print("hello!") s.enter( 5, 1, a, () )
s = sched.scheduler( time.time, time.scleep() ) s.enter( 0, 1, a, () ) s.run |
이렇게 하면 실행즉시 a 함수가 실행되고,
5초 주기로 a 함수가 실행된다.
Ctrl + C 를 할 시 중단되기도 하고,
def a() 함수 내부에 변수를 설정해서 중단할 수도 있겠다.
1 2 3 4 5 6 7 8 9 10 11 |
end = False def a(): if end : return else : print(a) s.enter( 5, 1, a, () )
s = sched.scheduler( time.time, time.scleep() ) s.enter( 0, 1, a, () ) s.run
|
cs |
위와 같이 end 라는 boolean 변수 설정해서, True로 바뀌면 실행을 안하겠지요!
'개발 > Python & Flask' 카테고리의 다른 글
Python Flask Logging 사용법!! - 서버관리 필수요소 (2) | 2020.11.10 |
---|---|
Python Flask CSV 파일 다루기! 초간단 3줄 예시 (0) | 2020.11.10 |
Flask 선행 라이브러리, Python Flask 오프라인 세팅 (0) | 2020.11.10 |
[Python] 단어변환 문제풀이(완전탐색) (0) | 2020.08.12 |
[python] 네트워크 문제풀이(DFS정복!) (0) | 2020.08.11 |