# Sentry Laravel queues: per-job sample rates for noisy workers
## The volume problem
A queue worker processing thousands of jobs an hour at `traces_sample_rate=1.0` generates more spans than your web tier. The docs anticipate exactly this: if queued jobs generate more traces than web requests, lower the rate per job.
```php
use Sentry\Laravel\Jobs\Middleware\SentryTracesSampleRate;
class ProcessPodcast implements ShouldQueue
{
public function middleware(): array
{
return [new SentryTracesSampleRate(0.01)];
}
}
```
Keep the web rate where it is useful and pin chatty jobs near zero. One middleware per job class, tuned by how often the job runs and how much you care about its traces.
## Failed jobs
Failed job exceptions are captured with the job context. Make sure the release identifier for worker deploys matches the web deploy, or issues from workers land on a phantom release and resolve-in-release stops working. If you deploy workers separately, run the `sentry-cli releases` notify step in that pipeline too.
## Long-running workers
Queue workers are long-lived processes. Scope data (tags, user, breadcrumbs) can leak from one job into the next if you set it globally. Prefer setting context inside the job's `handle()` or via job middleware, so each job starts clean.
## Verify
Dispatch a job that throws, let it fail, and confirm one issue appears with the job class and queue name attached. Two issues for one failure usually means both the worker capture and a manual `captureException` fired; keep one path.