🔎 실시간 경매 사이트
경매 상품 등록시 설정된 경매 시작 시간에 맞추어 경매 채팅방이 열려야함
django에서 작업을 스케줄링 하는 방법을 알아보자
1. Django Background Tasks 라이브러리 사용
- Django Background Tasks 라이브러리를 사용하면 주기적으로 작업 가능
- but, 현재 사용하고 있는 django 버전은 지원하지 않음 (django 4.1.11사용)
✔ 2. Celery와 Django-Celery-Beat
- Celery와 Django-Celery-Beat를 사용하여 Django 애플리케이션에서 비동기 작업을 예약 가능
- 이 방법은 보다 복잡하지만 스케줄링 옵션과 유연성이 높음
✔ 경매 채팅방은 django-channels와 redis로 구현할 예정이기 때문에 Celery + redis 선택
✅ celery
- 비동기 작업 큐와 작업 처리자(worker)를 관리하는 역할
- 비동기 작업을 생성하고 큐에 넣어서 나중에 처리할 수 있도록 해줌
- 주요 역할은 작업을 분산하고, 병렬로 실행하는 것
✅ celery beat
- 주기적인 작업을 예약하고 관리하는 역할
- 일정한 시간 간격으로 작업을 실행하거나 특정 시간에 작업을 예약할 수 있음
- 스케줄링 된 작업을 celery worker에 전달하여 실행