# apscheduler

8개의 포스트

Django에서 apscheduler 사용하기

apscheduler 특정시간 마다 배치를 실행하는 기능 schedule보다 더 많은 기능을 제공하는 라이브러리. 복잡한 작업, schedule보다 고급 기능이 필요한 경우 사용. apscheduler 참고 사용법 1) apscheduler 설치 terminal에 아래 명령어 실행 2) setting.py에 백엔드 설정 3) 작업함수 생성 4) app 등록 5) 앱 실행 서버가 실행되는 동안, 자동적으로 코드가 실행됨 celery와 연동하여 비동기작업, 분산 작업 스케쥴링 (선택) 스케쥴러 함수만 분리하여 사용하고 싶다면? 🤔 참고 - https://ediblepotato.tistory.com/3 (스케쥴러 실행 함수를 분리하여 코드하는 법에 대해 잘 설명 되어 있음👍) 1) apscheduler 설

2023년 8월 22일
·
0개의 댓글
·

[Django] Django에서 Scheduler 사용하기 - crontab, apscheduler

Django scheduler 장고 프로젝트를 진행하면서 정기적으로 함수를 수행시켜줄 스케줄러가 필요했다. 사용한 스케줄러에는 apscheduler와 crontab이 있다. 차이점은 apscheduler는 장고 위에서 실행되어서 runserver시 print()로 바로바로 실행 확인이 가능했다. crontab의 경우 리눅스에 테스크들을 등록하여 사용하고 실행 시간도 장고 프로젝트에 설정된 시간이 아닌 리눅스 시간으로 반영된다. crontab에서는 print()가 바로 콘솔에 찍히는 것이 아니라 log파일을 따로 설정하여 확인할 수 있다. (Windows환경에서는 crontab을 사용할 수 없다.) >## Django - apscheduler 1. apscheduler 설치 apscheduler 라이브러리를 설치한 후에 사용할 수 있다. 2. settings.py 수정 settings.py에서 INSTALLED_APPS에 apsch

2023년 1월 27일
·
0개의 댓글
·
post-thumbnail

python으로 daemon scheduler 구현

Linux crontab 문제점 데이터 자동 추가를 위해 linux crontab을 이용하려 했는데, 실행하고자 하는 crawling.py 파일에 외부 라이브러리가 많아서 그런지 (crontab 파일에 따로 library path를 추가해야 할듯?) crontab이 매달 실행 자체가 안됨 -> python subprocess module과 apscheduler module을 이용하여 직접 schedular를 구현함 schedule.py file subprocess.run()을 통해 외부 python 파일을 실행할 수 있음 일반 script가 아닌 python 파일의 경우, sys module을 호출하여 "args=[sys.executable, "실행시킬 .py 파일"]"와 같이 subprocess를 실행해야함 -> crawling.py 파일 실행 scheduler를 background에서 실행하기 위해 BackgroundSched

2023년 1월 2일
·
0개의 댓글
·

[pjt 422] 개발 일지 - 쓰레기통 사용량에 대한 통계 데이터 만들기 - 2

Apscheduler를 사용해 자동화 로직 만들기 개요 일전에 만든 pandas 로직을 날마다 날마다 생성되는 log 데이터에 일정 시간마다 적용하고 싶었다. 이를 위해 django-apscheduler를 사용했다. 참고 문서 : django-apscheduler pip 일반 apscheduler와 django-apscheduler를 설치한다. settings.py installedapps에 'djangoapscheduler'를 추가한다. 그 후, DatetimeFormat을 설정해준다. (위의 값은 default) operator.py 해당 로직을 실행하고 싶은 app 안에 operator.py를 만들어준다(파일 이름은 마음대로) start 메서드를 정의한다 scheduler 변수를 BackgroundScheduler를 사용해 선언하고, add

2022년 8월 25일
·
0개의 댓글
·
post-thumbnail

Python_apscheduler (항해일지 3일차)

오늘은 chapter1 웹개발 미니프로젝트의 개발이 마무리된 날이다. 1) 개발 및 학습 현황 오전에는 Java의 예외 처리 방식과 DateTime 표현 방식에 대해 학습했다. 오후에는 웹개발 미니 프로젝트의 가장 중요한 기능이었던 실시간 정보 업데이트를 구현하고자 했다. 기존에 구현했던 웹은 특정 시점의 Top100위 음원들을 DB에 저장하여 사용했지만, 처음 기획했던 웹은 실시간으로 Top 100위의 음원들을 띄워줘야 했다. 따라서 Schedule 관리라는 키워드를 떠올렸고, 파이썬으로 구현 가능한 간단한 스케쥴러 라이브러리를 구글링했다. 처음 찾았던 schedule 라이브러리는 파이썬 스크립트 내부에서 while 무한 루프를 통해 작동되는 방식이었다. 하지만 이를 서버단의 app.py에서 작동하니 서버단의 코드는 실행되지 않고 무한루프에만 빠져있었다. 따라서!! flask의 서버단에서 이를 활용했던 사례를 구글링했다. 이를 통해 찾은 라이브러리는 `apsched

2022년 5월 11일
·
0개의 댓글
·

Ai_D57

Summary API 와 Library 에서 사용되는 시간 기준 시간 표기시, 인간과 컴퓨터가 인식하는 방법이 다르다 작업 예약 스케줄링 설정 인코딩 데이터의 양을 줄이기 위해 데이터를 코드화 하고 압축하는 것. UTC 타임존의 문제. 서버타임존. 로컬시간을 사용하면 타임존의 시간 차이를 표현하지 못한다. 문제점: 시간을 변화시키지 않고 로컬타임을 사용한다. 서비스, 시간을 이용하는 경우 시간을 저장하는 경우 여러 노드에서 시간을 발생시키는 경우 ISO 8601 Scheduling APScheduler cron Object Encoding dectyptuion decoder 인메모리 바이트 json wb 앞으로 바이트 형태 w string 형태

2022년 2월 9일
·
0개의 댓글
·

[TIL]Periodic Web Scraping

웹 크롤링과 웹 스크래핑의 차이점 업무상 scraping application을 개발을 진행하게 되었다. 일회성뿐 아니라 주기적으로 scraping하여 최신성을 유지하는 것도 기능목표이다. Scraping을 위해 BeatifulSoup , scrapy, selenium를 조사하였고 아래와 같은 좋은 게시글들을 확인하였다. 파이썬 크롤링 튜토리얼 [python웹 크롤러 도구 비교 및 사용 후기](https://keyhyuk-kim.medium.com/python-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%9F%AC-%EB%8F%84%EA%B5%AC-%EB%B9%84%EA%B5%90-%EB%B0%8F-%EC%82%AC%EC%9A%A9-%ED%9B%8

2021년 12월 6일
·
0개의 댓글
·

🔥 TIL - Day 28

프로젝트에서 매일 오전 9시에 발의법안 API로부터 받은 어제자 발의법안을 사용자에게 이메일로 전송하는 기능을 구현 중에 있었다. 현재 프로젝트에서 총 3개의 스케줄러를 사용하고 있는데 메일전송 스케줄러만 제대로 동작을 하지 않았다. 에러 로그를 보고 열심히 구글링 한 결과 쓰레드 관련 문제인 것 같은데 아직 Flask 에서 에러 로그를 보고 해결하는 실력이 부족해서 거의 포기상태였다.. 일단 잔머리를 조금 굴려보기로 했다. 일단 결과부터 말하자면 잘 동작하도록 수정했다. 📌 Solution ...! 처음 오류를 발생시킨 접근방법은 APScheduler의 Job으로 메일을 전송하는 메서드를 그대로 넣은 방식이다. 사실 당연히 이렇게 해서 동작이 되어야 한다. 근데 일단 에러를 뱉어내니 다른 방버을 사용했다. 해결한 방식이다. 메일을 보내는 메서드를 API로 매핑시키고 스케줄러의 Job에서는 해당 API를 부르는 식으로 변경했다. EC2

2021년 10월 14일
·
0개의 댓글
·