AGENT SKILL
jobs-events
Use when creating Laravel jobs, queued workflows, events, or listeners. Covers clear responsibilities, safe serialization, and retry/failure handling.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 19
- Forks
- 1
01 前言 Front Matter
- name
- jobs-events
- packs
- [ "laravel" ]
- trust
- { "level": "professional" }
- domain
- engineering
- install
- { "default": false, "removable": true }
- model_tier
- medium
- workspaces
- [ "engineering" ]
- description
- Use when creating Laravel jobs, queued workflows, events, or listeners. Covers clear responsibilities, safe serialization, and retry/failure handling.
03 SKILL.md 正文
jobs-events
When to use
Use when creating jobs, events, listeners, or queued workflows.
Do NOT use when:
- Artisan commands (use
artisan-commandsskill) - Scheduling configuration (use
laravel-schedulingskill)
Procedure: Create a Job
Step 0: Inspect
- Check existing jobs — match naming, queue config, retry strategy, failure handling.
- Determine sync vs. async — only queue work that is slow, retryable, or non-blocking.
- Check queue driver:
.env/config/queue.php(Redis, database, sync). - Check Horizon:
config/horizon.phpfor queue names, supervisors, balancing.
Step 1: Create the job class
- Pass IDs or compact DTOs in constructor — not full models with relations.
- Set queue via
$this->onQueue(Queue::NAME->value). - Add
tags()for Horizon filtering. - Set
$maxExceptions,backoff(),$uniqueForas needed.
Step 2: Implement handle()
- Keep focused and readable.
- Delegate complex logic to services/actions.
- Design for idempotency — retries must not create duplicates.
Step 3: Test
Bus::fake(),Queue::fake(),Event::fake().- Test side effects, not just dispatch assertions.
Procedure: Create an Event + Listener
Step 1: Create event
- Past-tense naming:
OrderPlaced,ImportCompleted. - Keep payload focused.
- Laravel 11+: automatic discovery — no manual registration.
Step 2: Create listener
- One responsibility per listener.
- Delegate large logic to services.
- Use
ShouldQueueon listeners that do heavy work.
Conventions
→ See guideline php/jobs.md for full conventions (serialization, idempotency, events, dispatching).
Output format
- Job/Event/Listener class(es) with proper serialization and retry config
- Event registration in EventServiceProvider if needed
Gotcha
- Without
ShouldQueue, jobs run synchronously. - Queued jobs serialize constructor args — don't pass loaded models.
- Listener exceptions block the event chain — queue heavy listeners.
- Set
$triesand$backoff— unlimited retries overwhelm the queue.
Do NOT
- Do NOT serialize Eloquent models with loaded relations into queued jobs.
- Do NOT ignore idempotency — retries must not create duplicates.
- Do NOT hide critical business flows behind deep listener chains.
Auto-trigger keywords
- Laravel job
- queue
- event
- listener
- dispatch
- serialization
04 同仓库更多 Skills
unknown-key-fixture
Declares a key the schema does not know.
★ 19
portable-fixture
Declares only semantics the MCP-lite carrier transports whole.
★ 19
non-portable-fixture
Declares a runtime semantic the carrier drops.
★ 19
candidate-zero-width
A candidate whose prose carries an invisible joiner.
★ 19
candidate-disclosure-suppression
A candidate whose prose tells the agent to withhold from the user.
★ 19
candidate-dangerous-frontmatter
A candidate claiming an unscoped tool grant and a permission bypass.
★ 19