OZ-Coding-School / oz_02_collabo-003-BE

oz_02_collabo-003-BE
3 stars 1 forks source link

[BE]스케쥴러(push, 콘텐츠자동생성일) 일정 변경시 스케쥴러 재등록 #138

Closed Hyunminmax closed 4 months ago

Hyunminmax commented 4 months ago

1차 시도 방법 스케쥴러에 등록된 job을 수정하는 방식 실패.

2차 시도 방법 스케쥴러에 등록된 job을 삭제하고 변경된 job으로 추가하는 방식 실패.

3차 시도 방법 2차 시도에서 아래와 같은 실패 원인을 찾아서

    # 원인은 알수 없으나 아래 get_job이 DB에 분명히 존재하는 값을 읽지못함.
    # existing_job = scheduler.get_job(job_id)
    # if existing_job:
    #     print(f'기존 작업({job_id}) 삭제')
    #     scheduler.remove_job(job_id)
    #     try:
    #         DjangoJob.objects.get(id=job_id).delete()
    #     except DjangoJob.DoesNotExist:
    #         pass
    # else:
    #     print(job_id,'가 없음.')

아래와 같이 orm을 사용해서 DB에서 직접 삭제를 하고 다시 추가하는 방식으로 전환

    job_id = 'term_scheduler'
    # DjangoJob 모델에서 동일한 ID를 가진 작업 삭제
    django_job = DjangoJob.objects.filter(id=job_id).first()
    print('django_job:',django_job)
    if django_job:
        django_job.delete()
        print(f'기존 DjangoJob({job_id}) 삭제')
    else:
        print(f'{job_id}에 해당하는 DjangoJob이 존재하지 않습니다.')