Development

Trigger.dev คืออะไร? คู่มือ Background Jobs & Workflow Orchestration สำหรับ Next.js + Laravel 2026

Trigger.dev v3 คือ Open-Source Background Jobs Platform สำหรับ TypeScript ที่ทดแทน Bull, BullMQ, Sidekiq ใช้งานง่าย รองรับ Long-running tasks, Cron, Webhooks เชื่อมกับ Next.js และ Laravel ได้ในไม่กี่บรรทัด ลดเวลา dev 60-80% เหมาะสำหรับ SME ไทยที่ต้องการระบบงานเบื้องหลังเสถียร

AF
ADS FIT Team
·8 นาที
Share:

# Trigger.dev คืออะไร? คู่มือ Background Jobs & Workflow Orchestration สำหรับ Next.js + Laravel 2026

ทุกระบบที่โตขึ้นจะต้องเจอกับ "งานที่รันนานเกิน HTTP timeout" ไม่ว่าจะเป็นการส่งอีเมล batch 10,000 ฉบับ, generate รายงาน PDF, หรือเรียก AI API ซ้อนกันหลายขั้น ปัญหาเหล่านี้ทำให้ทีม Dev ของ SME ไทยต้องประกอบ Queue System จาก Bull, BullMQ, Sidekiq, Resque หรือ Laravel Queue ซึ่งใช้เวลาตั้งค่ามากแถมยังต้องจัดการ Redis Worker, Retry Logic และ Monitoring แยกอีก

Trigger.dev เป็น Open-Source Background Jobs Platform ที่ออกแบบมาให้นักพัฒนา TypeScript เขียน Background Job เหมือนเขียนฟังก์ชันธรรมดา ไม่ต้องสร้าง Worker, Queue และ Cron แยกต่างหาก รองรับ Long-running tasks สูงสุด 1 ชั่วโมงต่อ Task และ Workflow ที่ซับซ้อน เช่น Wait, Retry, Subtask โดยมีทั้ง Cloud และ Self-hosted ให้เลือก

ในบทความนี้คุณจะได้เรียนรู้ Architecture ของ Trigger.dev v3, ใช้งานกับ Next.js และเชื่อมต่อกับ Laravel API พร้อมเปรียบเทียบกับทางเลือกอื่นเพื่อเลือกใช้ให้เหมาะกับ SME ไทย

Trigger.dev v3 คืออะไร? Architecture ที่ต่างจาก Bull/Sidekiq

Trigger.dev v3 เปลี่ยน Architecture ใหม่หมดจาก v2 โดยใช้ Run Engine ที่จัดเก็บสถานะของแต่ละ Task ใน PostgreSQL พร้อม Snapshotting ทำให้ Task ที่รันค้างหลายนาที-ชั่วโมงสามารถ Resume ต่อได้ทันทีหลัง Worker Crash ต่างจาก Bull/BullMQ ที่หาก Worker ตายระหว่างรัน Task อาจเสีย state และต้องเริ่มใหม่ ส่งผลกระทบต่อข้อมูลการเงินและ business logic ที่ critical

จุดเด่นที่ Bull/Sidekiq ไม่มีคือ Concurrency Control แบบ per-key เช่น "ทุก user รันพร้อมกัน 1 task เท่านั้น" ตั้งค่าได้ทันทีโดยไม่ต้องเขียน distributed lock เอง และ Realtime Subscription ที่ Frontend สามารถ subscribe ดูสถานะ Task ผ่าน WebSocket ได้โดยไม่ต้อง polling

| Feature | Trigger.dev v3 | BullMQ + Redis | Sidekiq | Laravel Queue |

|---------|----------------|----------------|---------|---------------|

| Long-run > 15 min | รองรับ | ยาก | ยาก | ขึ้นอยู่กับ driver |

| State persistence | PostgreSQL auto | ต้องทำเอง | Redis (volatile) | ต้องทำเอง |

| Realtime UI | WebSocket built-in | ไม่มี | ไม่มี | ต้องใช้ Reverb |

| TypeScript-first | ใช่ | ได้ | ไม่ใช่ | ไม่ใช่ |

| Self-host docker | รองรับ (free) | ฟรี | Pro paid | ฟรี |

วิธีใช้งานกับ Next.js (Step-by-Step)

ขั้นตอนเริ่มต้นใช้ Trigger.dev v3 กับ Next.js project ใช้เวลา 10-15 นาทีถ้าทำตามนี้:

Step 1 — สมัครและสร้าง Project

ไปที่ trigger.dev สมัคร Free tier (5,000 runs/เดือน) สร้าง Organization และ Project ใหม่ จะได้ API Key 2 ตัว: `TRIGGER_SECRET_KEY` สำหรับ Server และ `TRIGGER_PUBLIC_API_KEY` สำหรับ Client

Step 2 — ติดตั้ง CLI

รัน `npx trigger.dev@latest init` ใน root ของ Next.js project CLI จะสร้างโฟลเดอร์ `/trigger` พร้อม config file `trigger.config.ts` และเพิ่ม secret key ใน .env อัตโนมัติ

Step 3 — เขียน Task แรก

สร้างไฟล์ `/trigger/send-welcome-email.ts` ใช้ helper `task()` รับ `id`, `run` function รับ payload ส่งคืน result กลับ ใส่ `retry` config เพื่อ retry อัตโนมัติเมื่อ network ผิดพลาด ใช้ `logger` ของ Trigger.dev จะ log เข้า Dashboard ให้ทันที

Step 4 — Trigger จาก Server Action

ใน Next.js Server Action หรือ Route Handler เรียก `tasks.trigger("send-welcome-email", payload)` ฟังก์ชันนี้ return ภายใน 50ms (แค่ enqueue) ไม่ block HTTP response ทำให้ user ได้ feedback ทันที

Step 5 — Deploy และรัน Worker

ใช้ `npx trigger.dev@latest deploy` upload code ไป Cloud หรือ Docker Self-host Worker จะสตาร์ทโดยอัตโนมัติ ดู progress real-time ใน Dashboard

เชื่อมต่อกับ Laravel API: 2 รูปแบบที่ใช้บ่อย

SME ไทยส่วนใหญ่มี Backend เป็น Laravel แต่อยากใช้ Trigger.dev เพราะ TypeScript developer ทำงานเร็วและ ecosystem ดีกว่า มี 2 รูปแบบหลักในการรวมระบบ:

  • **รูปแบบ 1 — Trigger.dev เป็น Worker ของ Laravel:** Laravel ส่ง HTTP request มาที่ Trigger.dev API endpoint (`/api/v1/tasks/:id/trigger`) ส่ง payload ผ่าน JSON เมื่อ Task เสร็จให้ Trigger.dev ส่ง Webhook กลับมาที่ Laravel `/webhooks/trigger-completed` รูปแบบนี้เหมาะกับงานที่ต้องการ TypeScript ecosystem เช่น เรียก OpenAI, generate PDF ด้วย Puppeteer, scrape เว็บ
  • **รูปแบบ 2 — Trigger.dev เรียก Laravel API:** Task ใน Trigger.dev เรียก HTTP มาที่ Laravel `/api/internal/*` ใช้ JWT หรือ Signed URL ตรวจสอบ identity เหมาะกับงานที่ต้องอ่าน-เขียน DB ของ Laravel เช่น batch update Order Status, recalculate Loyalty Points
  • ทั้ง 2 รูปแบบแนะนำให้ตั้ง Internal Network เพื่อให้ Latency ต่ำ ถ้า Laravel อยู่บน VPS เดียวกันให้เปิด Trigger.dev self-host บน Docker Compose จะลด round-trip ได้มาก

    ใช้ Trigger.dev ทำอะไรได้บ้างในธุรกิจจริง

    ตัวอย่าง Use Case ที่ทีมเราติดตั้งให้ลูกค้า SME ในกรุงเทพและชลบุรี:

  • **AI Workflow:** ส่งคำถามลูกค้าเข้า Cohere Rerank แล้วต่อด้วย Claude สรุปเอกสาร ใช้เวลา 30-90 วินาทีต่องาน
  • **Excel Report Generator:** สร้างรายงานยอดขายราย Sales Person ทุกเช้าวันจันทร์ 6 โมง 200+ รายงาน parallel
  • **Subscription Renewal:** เช็คสมาชิกหมดอายุ, ส่ง Email Reminder, สร้าง Invoice อัตโนมัติทุกวันเที่ยงคืน
  • **Image Processing Pipeline:** Resize, Compress, อัป Cloudflare Images ทุกครั้งที่ user upload โดยไม่ block UI
  • **Webhook Fan-out:** รับ Webhook จาก Stripe, Lazada, Shopee เข้ามาแล้วกระจายไปอัปเดต DB, ส่ง Slack notify, generate Tax Invoice
  • **Data Sync:** Sync ข้อมูล Inventory จาก ERP เข้า E-commerce ทุก 15 นาที พร้อม retry policy เมื่อ API down
  • เปรียบเทียบ Pricing: Self-host vs Cloud

    | รูปแบบ | Free | Pro | Enterprise |

    |--------|------|-----|------------|

    | Self-host Docker | ฟรี ตลอด | - | - |

    | Cloud Hobby | 5,000 runs/เดือน | - | - |

    | Cloud Pro | - | $20/เดือน + $0.0025/run | - |

    | Cloud Team | - | $90/เดือน, Concurrency สูง | - |

    | Cloud Enterprise | - | - | Custom + SLA + SOC 2 |

    สำหรับ SME ที่ต้องการ Privacy/PDPA สูง แนะนำให้ใช้ Self-host Docker จะได้ Performance เทียบเท่า Cloud โดยไม่ต้องจ่ายค่า license แต่ต้องมีคนดูแล Postgres และ Redis เอง ส่วน Cloud Hobby เหมาะกับ Side-project หรือ MVP ที่ run ไม่เกิน 5,000 ครั้ง/เดือน

    ข้อควรพิจารณาก่อนเลือก Trigger.dev

    จุดที่ต้องระวังคือ Trigger.dev เป็น TypeScript-first ถ้าทีมของคุณเขียน Python หรือ Go เป็นหลักจะใช้ลำบาก ควรเลือก Hatchet, Inngest หรือ Temporal แทน นอกจากนี้ Self-host ต้องการ Postgres 14+, Redis 7+, Docker Compose พื้นฐาน ไม่เหมาะกับทีมที่ไม่มี DevOps

    อีกจุดคือ Long-run task เกิน 1 ชั่วโมงให้แตก task เป็น sub-task หลายชั้นแทน เพราะ Trigger.dev ออกแบบสำหรับ task ระดับนาที-สิบนาที ไม่ใช่ batch processing ระดับชั่วโมง

    สรุป + ขั้นตอนถัดไป

    Trigger.dev v3 เป็นทางเลือกที่ลดเวลาตั้งค่า Background Job Queue สำหรับ TypeScript ทีมได้ 60-80% เทียบกับการประกอบ Bull + Redis + Worker เอง พร้อม Realtime UI และ State Persistence ที่ทำให้ Production มั่นคงมากขึ้น สำหรับ SME ไทยแนะนำเริ่มจาก Cloud Hobby tier ทดลองงานเล็ก-กลาง 1-2 task ก่อน ถ้าใช้แล้วชอบจึงค่อยย้ายไป Self-host เพื่อประหยัดค่าใช้จ่ายระยะยาว

    หากต้องการให้ทีม ADS FIT วาง Job Queue Architecture, ออกแบบ Workflow ที่ฝัง AI หรือเชื่อม Laravel + Next.js + Trigger.dev ทั้งระบบ พร้อม Monitoring และ Alert สามารถติดต่อปรึกษาฟรีได้ที่ contact@adsfit.co.th หรืออ่านบทความเกี่ยวข้องอื่น เช่น Better Auth TypeScript, Bun Runtime, Apache Kafka Event Streaming ในบล็อก ADS FIT

    Tags

    #Trigger.dev#Background Jobs#Workflow#Next.js#TypeScript#Cron

    สนใจโซลูชันนี้?

    ปรึกษาทีม ADS FIT ฟรี เราพร้อมออกแบบระบบที่ฟิตกับธุรกิจของคุณ

    ติดต่อเรา →

    บทความที่เกี่ยวข้อง