티스토리 뷰

* 프레임워크 의존도가 없다

* 초단위(cron), 특정시간(at), 주기적인(interval) 작업수행 가능

@sched.scheduled_job('cron', day_of_week='fri'.... 으로 선언하여 사용

 

 

* 설치

-> pip install apscheduler

 

 

* 예제

import logging

from apscheduler.schedulers.blocking import BlockingScheduler

 

sched = BlockingScheduler()

 

def todo_action():

# TODO ACTTION

print "TODO this !!"

 

# 금요일 9시 22분에 실행

@sched.scheduled_job('cron', day_of_week='fri', hour=9, minute=22)

def cron_job():

print "Start Scheduler !!"

# 10초에 한번씩 todo_action 을 실행

# id 는 스케쥴러 삭제를 위해 필요 -> 삭제 : sched.remove_job("todo_action_1")

sched.add_job(todo_action, "interval", seconds=10, id="todo_action_1")

logging.basicConfig()

 

# 스케쥴러 실행

sched.start()

 

 

 

 

 

 

*  예제 2 : Tornado 에 적용 시

 

 

# 스케줄러 정의, 생성

@sched.scheduled_job('cron', day_of_week='fri', hour=9, minute=22)
def scheduled_job():
    sched.add_job(timed_job, "interval", seconds=1, id="timedJob")

 

def timed_job():
    print "aa"

    sched.remove_job("timedJob")    # 스케줄러 삭제

 

def main():
    tornado.options.parse_command_line()
    logging.info("start!! http://localhost:%s" % options.port)
    http_server = tornado.httpserver.HTTPServer(Application())
    http_server.listen(options.port)
    sched.start()                                     # 1. 스케쥴러 실행
    tornado.ioloop.IOLoop.instance().start()  # 2. tornado 실행

 

if __name__ == "__main__":
    main()

'프로그래밍' 카테고리의 다른 글

[JAVASCRIPT] 정규식  (0) 2016.12.24
[ETC] 모바일웹, 웹앱, 하이브리드앱, 네이티브앱 차이점  (0) 2016.12.24
[ETC] Singleton Pattern  (0) 2016.12.24
[ETC] Cron Tab  (0) 2016.12.24
[PYTHON] File IO, Image Download  (0) 2016.12.24
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함