본문 바로가기
카테고리 없음

TIL-10

by 오우지 2021. 9. 28.

오늘은 apscheduler, aws에서의 rds 사용 등에 대해 공부했다.

 

APscheduler는 본래 파이썬 어플리케이션에서 주기적으로 함수를 실행하기 위한 라이브러리인데 flask에서 사용하기 위해서는 어떤 천사분들이 만들어주신 flask-APscheduler를 import함으로써 실행할 수 있다. 나도 이런 능력있는 천사가 되고싶다.

무튼, 공식 문서(https://viniciuschiele.github.io/flask-apscheduler/rst/usage.html)를 보면 훨씬 다양한 내용을 알 수 있고 나는 초기화, interval을 이용한 함수 구현만 이용했다.

 

class Config:
    SCHEDULER_API_ENABLED = True
    
scheduler = APScheduler()
scheduler.init_app(app)
scheduler.start()

@scheduler.task('interval', id='autocraw', seconds=900, misfire_grace_time=900)
def autocraw():
    titleCrawling()

위에는 scheduler를 초기화 한 방법이고 아래는 interval을 가지고 실행되는 함수를 구현한 것이다. id는 현재 사용처는 잘 모르겠는데 오류가 났을 때 로그로 찍히는 것을 확인했다. seconds는 생각하는 그것이고 misfire_grace_time은 함수 실행 실패시 다시 실행하는 시간을 의미하는 것으로 생각하면 된다.

 

autocraw라는 함수를 이용해 titleCrawling이라는 함수를 900초마다 실행하는 함수라고 할 수 있겠다.

 


 

aws에서의 RDS는 클라우드 데이터베이스라고 생각하면 된다. amazon Aurora, MySQL, MariaDB등 다양한 DB를 사용할 수 있고, 과거의 오라클 데이터베이스를 이용하면서 생긴 업무인 기업의 DB성능 업그레이드를 위한 대공사 라는 귀찮음과 비용을 줄이는데 큰 도움이 됐고, 따라서 현재 많은 기업들이 채택하고있다고 한다.

 

RDS를 생성하고 나서는 pycharm에서의 Database탭을 이용해 편하게 사용할 수 있다. 이건 내일 이어서.

 


항상 장기간의 경험을 할 때마다 느끼는 것이지만 처음엔 한없이 길어보였던 시간이 지나고 나면 혹은 절반이라도 지나고 나면 정말 짧은 시간이었던 적이 많다. 지금 당장 과거 하루하루 생각해보면 힘들었지만 내 머릿속에 새로운 지식이  많아졌다는 생각은 안든다. 혼자 추가로 공부해야겠다. 오늘도 공부 많이 안했다.