PHP laravel

Laravel ลบ Session ที่หมดอายุใน Database

by admin on | 2025-03-12 08:13:51 Last Updated by admin on2025-03-20 14:06:39

Share: Facebook | Twitter | Whatsapp | Linkedin Visits: 27


 1. ตรวจสอบว่าคุณใช้ SESSION_DRIVER=database

     เปิดไฟล์ .env และตรวจสอบว่าใช้ Database เก็บ Session

    "
       SESSION_DRIVER=database
       SESSION_LIFETIME=120  # 120 นาที (2 ชั่วโมง)
   "
*
Laravel จะเก็บ Session ในตาราง sessions

2. เพิ่ม Prunable ใน Model Session
2.1. สร้าง Model Session.php (ถ้ายังไม่มี)

    " php artisan make:model Session "

2.2. แก้ไขไฟล์ app/Models/Session.php
    [CODE]


3. ใช้คำสั่ง model:prune เพื่อลบ Session ที่หมดอายุ
รันคำสั่งนี้เพื่อลบ Session ที่หมดอายุ
" php artisan model:prune "

ผลลัพธ์:
    - Laravel จะลบ Session ที่ last_activity หมดอายุ
    - ไม่มีผลกระทบกับ Session ที่ยังใช้งานอยู่

4. ตั้ง CRON Job หรือ Task Scheduler ให้ลบ Session อัตโนมัติ
ตั้ง CRON Job ให้รัน model:prune ทุกชั่วโมง
เปิด Terminal แล้วพิมพ์

" crontab -e "
เพิ่มบรรทัดนี้ (ให้ลบ Session ทุกชั่วโมง)เพิ่มบรรทัดนี้ (ให้ลบ Session ทุกชั่วโมง)
" * * * * php /path/to/artisan model:prune >> /dev/null 2>&1 "

Session จะถูกลบอัตโนมัติทุกชั่วโมง