본문 바로가기

내일배움 캠프/TIL

django_cron 을 통한 스케줄러 사용

프로젝트를 진행하던 도중 유저가 몇개월 이상 접속하지않거나 탈퇴한지 특정기간이 지나게 되면 회원정보를 삭제하는 코드를 구현하고 싶었는데 이거를 사용하기위해서는 특정시간마다 db를 돌려서 해당조건에 맞는 유저를 찾아서 변환을 해줬어야 해서 이거를 처리하기 위해서 어떤 방법이 좋을까 고민하다가 튜터님께서 알려주신 django-cron을 사용했습니다

settings.py 에 추가하고자하는 작업을 추가해주고

CRON_CLASSES = [
    "user.cron.MyCronJob",
]

해당 코드와같이 작성해주면 매 00시마다 작동을 하는 코드가 되게된다

from django_cron import CronJobBase, Schedule
class MyCronJob(CronJobBase):
    RUN_TIME = ["00:00"]
    schedule = Schedule(run_at_times=RUN_TIME)
    code = "user.my_cron_job"

이 RUN_TIME은 이거말고도

RUN_EVERY_MINS = 600
schedule = Schedule(run_every_mins=RUN_EVERY_MINS)

해당코드처럼 몇 분 간격으로 실행을 하는거도 지정이 가능하다

def do(self):
    pass

그리고 do를통해 스케줄러에 등록할 작업을 포함하고 

migrations을 하게되면 주어진 조건에 맞게 실행이 된다

'내일배움 캠프 > TIL' 카테고리의 다른 글

simple jwt token 커스터마이징  (0) 2023.06.15
celery를 사용한 비동기 처리  (0) 2023.06.14
vue router  (2) 2023.06.05
코딩테스트 2016년  (0) 2023.06.02
내가 보고 베끼려고 저장해둔 리눅스 명령어  (1) 2023.05.31