배경
현재 cron(*/20 * * * *)이 신청 기간과 무관하게 항상 실행됨. 신청 기간이 아닐 때도 포럼 채널을 계속 폴링하는 건 불필요한 낭비이고, 의도치 않은 처리가 발생할 수 있음.
제안
/cron on / /cron off 슬래시 커맨드로 자동화 활성화 여부를 제어.
구현 방향 검토
Option A: Cloudflare Workers KV로 상태 관리
- KV에
CRON_ENABLED: true/false 저장
scheduled 핸들러 진입 시 KV 값 확인 후 early return
- 장점: 배포 없이 즉시 on/off 가능
- 단점: KV 추가 비용 (미미), KV 바인딩 설정 필요
Option B: Cloudflare Workers API로 cron 트리거 자체를 추가/제거
- 장점: 진짜 cron이 멈춤
- 단점: Workers API 호출 복잡, 배포에 준하는 작업
Option C: Discord 채널 ID를 env var로 관리, off 시 빈 값으로 설정
→ Option A가 가장 현실적
구현 범위 (Option A 기준)
- Cloudflare KV 네임스페이스 추가 (
CRON_STATE)
/cron on / /cron off 슬래시 커맨드 등록
scheduled 핸들러에서 KV 값 확인
const enabled = await env.CRON_STATE.get("enabled");
if (enabled !== "true") return;
- 커맨드 실행 시 KV 업데이트 + Discord에 결과 응답
- 운영자 전용으로 권한 제한 필요 (특정 role 보유자만 실행 가능)
배경
현재 cron(
*/20 * * * *)이 신청 기간과 무관하게 항상 실행됨. 신청 기간이 아닐 때도 포럼 채널을 계속 폴링하는 건 불필요한 낭비이고, 의도치 않은 처리가 발생할 수 있음.제안
/cron on//cron off슬래시 커맨드로 자동화 활성화 여부를 제어.구현 방향 검토
Option A: Cloudflare Workers KV로 상태 관리
CRON_ENABLED: true/false저장scheduled핸들러 진입 시 KV 값 확인 후 early returnOption B: Cloudflare Workers API로 cron 트리거 자체를 추가/제거
Option C: Discord 채널 ID를 env var로 관리, off 시 빈 값으로 설정
→ Option A가 가장 현실적
구현 범위 (Option A 기준)
CRON_STATE)/cron on//cron off슬래시 커맨드 등록scheduled핸들러에서 KV 값 확인