# CronDelete

ยกเลิก cron job ที่กำหนดตารางเวลาไว้ก่อนหน้าด้วย `CronCreate` โดยลบออกจากที่เก็บข้อมูลเซสชันในหน่วยความจำทันที ไม่มีผลใดๆ หาก job ถูกลบออกโดยอัตโนมัติแล้ว (job แบบครั้งเดียวจะถูกลบหลังจากทำงาน job แบบวนซ้ำจะหมดอายุหลังจาก 7 วัน)

## เมื่อใดควรใช้

- เมื่อผู้ใช้ต้องการหยุดงานที่กำหนดตารางเวลาแบบวนซ้ำก่อนที่จะหมดอายุอัตโนมัติใน 7 วัน
- เมื่อ job แบบครั้งเดียวไม่จำเป็นอีกต่อไปและต้องการยกเลิกก่อนที่จะทำงาน
- เมื่อต้องการเปลี่ยน cron expression ของ job ที่มีอยู่ — ลบด้วย `CronDelete` แล้วสร้างใหม่ด้วย `CronCreate` โดยใช้ expression ใหม่
- ทำความสะอาด job ที่ล้าสมัยหลายรายการเพื่อให้ที่เก็บข้อมูลเซสชันเป็นระเบียบ

## พารามิเตอร์

- `id` (string, จำเป็น): ID ของ job ที่ `CronCreate` ส่งคืนเมื่อสร้าง job ครั้งแรก ค่านี้ต้องตรงกันอย่างแน่นอน ไม่รองรับการค้นหาแบบคลุมเครือหรือการค้นหาตามชื่อ

## ตัวอย่าง

### ตัวอย่างที่ 1: ยกเลิก job แบบวนซ้ำที่กำลังทำงานอยู่

สร้าง job แบบวนซ้ำก่อนหน้านี้ด้วย ID `"cron_abc123"` ผู้ใช้ต้องการหยุดมัน

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

job ถูกลบออกจากที่เก็บข้อมูลเซสชันและจะไม่ทำงานอีก

### ตัวอย่างที่ 2: ลบ job แบบครั้งเดียวที่ล้าสมัยก่อนที่จะทำงาน

job แบบครั้งเดียวที่มี ID `"cron_xyz789"` ถูกกำหนดให้ทำงานใน 30 นาที แต่ผู้ใช้ตัดสินใจว่าไม่จำเป็นอีกต่อไป

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

job ถูกยกเลิก ไม่มีการดำเนินการใดๆ เมื่อถึงเวลาทำงานเดิม

## หมายเหตุ

- `id` ต้องได้รับจากค่าที่ส่งคืนของ `CronCreate` ไม่มีวิธีค้นหา job ตามคำอธิบายหรือ callback — บันทึก ID ไว้หากอาจต้องยกเลิกในภายหลัง
- หาก job ถูกลบออกโดยอัตโนมัติแล้ว (ทำงานในฐานะ job แบบครั้งเดียว หรือถึงการหมดอายุแบบวนซ้ำ 7 วัน) การเรียก `CronDelete` ด้วย ID นั้นจะเป็น no-op และไม่ก่อให้เกิดข้อผิดพลาด
- `CronDelete` มีผลเฉพาะกับเซสชันในหน่วยความจำปัจจุบันเท่านั้น หากสภาพแวดล้อม runtime ไม่คงสถานะ cron ไว้ข้ามการรีสตาร์ท งานที่กำหนดตารางเวลาจะสูญหายเมื่อรีสตาร์ทโดยไม่คำนึงว่าได้เรียก `CronDelete` หรือไม่
- ไม่มีการดำเนินการลบแบบกลุ่ม ยกเลิกแต่ละ job แยกกันโดยใช้ `id` ของตัวเอง
