Backend Development

[DJango] beat_schedule 변경이 admin에 반영되지 않을 때

yuwal6 2022. 7. 13. 17:39

django에서 beat schedule을 설정할 때, 아래와 같이 많이들 사용한다.

 

app.conf.beat_schedule = {
    'some_task1': {
        'task': 'some_task1',
        'schedule': crontab(minute=30, hour=9)
    },
    'some_task2': {
        'task': 'some_task2',
        'schedule': crontab(minute=00, hour=7, day_of_month=1)
    }
}

 

장고에서 위 값을 수정해도 admin의 periodic tasks에는 변경사항이 반영이 안 되는 것처럼 보이는데, 해당 업데이트는 장고가 하는 게 아니라 beat가 한다. 그러므로 한 번 beat를 돌려주면 갱신된 걸 볼 수 있다.

 

celery -A your_celery_location beat --loglevel=INFO --scheduler=django_celery_beat.schedulers:DatabaseScheduler

 

삭제된 task의 경우는 목록에는 보이지만 disable 처리 된다.