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 처리 된다.
'Backend Development' 카테고리의 다른 글
[DJango] Queryset Join과 쿼리 수 최적화 (0) | 2022.07.13 |
---|---|
[DJango] Foreign key constraint is incorrectly formed (0) | 2022.07.12 |