# CronDelete

`CronCreate`로 이전에 예약된 크론 작업을 취소합니다. 인메모리 세션 저장소에서 즉시 제거하며, 작업이 이미 자동 삭제된 경우(단발성 작업은 실행 후 자동 제거, 반복 작업은 7일 후 자동 만료)에는 아무런 효과가 없습니다.

## 사용 시점

- 사용자가 7일 자동 만료 전에 반복 예약 작업을 중지하도록 요청할 때.
- 단발성 작업이 더 이상 필요하지 않아 실행 전에 취소해야 할 때.
- 기존 작업의 일정을 변경해야 할 때 — `CronDelete`로 삭제한 후 새 표현식으로 `CronCreate`를 사용해 재생성합니다.
- 여러 오래된 작업을 정리하여 세션 저장소를 깔끔하게 유지할 때.

## 매개변수

- `id` (string, 필수): 작업이 처음 생성될 때 `CronCreate`가 반환한 작업 ID입니다. 이 값은 정확히 일치해야 하며, 퍼지 검색이나 이름 기반 조회는 지원하지 않습니다.

## 예시

### 예시 1: 실행 중인 반복 작업 취소

ID가 `"cron_abc123"`인 반복 작업이 이전에 생성되었고, 사용자가 중지를 요청합니다.

```
CronDelete({ id: "cron_abc123" })
```

해당 작업이 세션 저장소에서 제거되어 다시 실행되지 않습니다.

### 예시 2: 실행 전 오래된 단발성 작업 제거

ID가 `"cron_xyz789"`인 단발성 작업이 30분 후에 실행되도록 예약되었지만, 사용자가 더 이상 필요하지 않다고 결정했습니다.

```
CronDelete({ id: "cron_xyz789" })
```

작업이 취소됩니다. 원래 예약된 시간이 되어도 아무 작업도 수행되지 않습니다.

## 참고사항

- `id`는 반드시 `CronCreate`의 반환값에서 가져와야 합니다. 설명이나 콜백으로 작업을 조회할 방법은 없으므로, 나중에 취소할 가능성이 있다면 ID를 저장해두세요.
- 작업이 이미 자동 삭제된 경우(단발성으로 실행되거나 7일 반복 만료에 도달한 경우), 해당 ID로 `CronDelete`를 호출해도 무효 작업(no-op)이 되며 오류는 발생하지 않습니다.
- `CronDelete`는 현재 인메모리 세션에만 영향을 미칩니다. 런타임이 재시작 간 크론 상태를 유지하지 않는다면, `CronDelete` 호출 여부와 관계없이 재시작 후 예약 작업은 모두 사라집니다.
- 일괄 삭제 기능은 없으므로, 각 작업의 `id`를 사용하여 개별적으로 취소해야 합니다.
