Laravel Background Processing

Scalable asynchronous workflows using Queues, Jobs, and Events.

mte90 1e89733 2 files · 2.1 KB Updated

File contents

Laravel Background Processing

Priority: P1 (HIGH)

Structure

app/
├── Jobs/               # Asynchronous tasks
├── Events/             # Communication flags
└── Listeners/          # Task reactions

Implementation Guidelines

  • Offload Heavy Tasks: Move any logic taking >100ms to a Queued Job.
  • ShouldQueue Interface: Add to Listeners for transparent async execution.
  • Redis Driver: Use Redis for reliable and high-throughput queuing.
  • Job Chaining: Use Bus::chain() for dependent sequential jobs.
  • Job Batching: Use Bus::batch() for parallel task monitoring.
  • Failures: Define failed() method in jobs to handle permanent errors.
  • Monitoring: Use Laravel Horizon for real-time queue observability.

Anti-Patterns

  • Blocking UX: No heavy logic in Request path: Always defer to Queues.
  • Raw Models: No large job payloads: Pass model IDs, not full objects.
  • Implicit Flow: No deep event-loop logic: Keep listener chains shallow.
  • Silent Failures: No unmonitored queues: Ensure retries and alerts.

References

  • Job Chaining & Event Patterns

mte90/dotfiles/tree/main/.config/opencode/skills/laravel/background-processing commit 1e89733164

Frequently asked questions

npx skillmds@latest add mte90/laravel-background-processing