u/Temporary_Tell3738

Your job "succeeded" but did nothing how do you even catch that?

Your job "succeeded" but did nothing how do you even catch that?

Had an interesting conversation recently about queue monitoring in Laravel. Someone came to me with a production case: a job was supposed to create 10,000 users, created 400, and still reported as successful. No errors, no exceptions, everything green. And I realized, right now my system can't even tell whether a job actually did what it was supposed to. I started looking at other monitoring tools, and most of them just say "it ran" or "it failed". But what about when it runs, doesn't crash, and just ... does the wrong thing?
Started thinking about tracking execution time baselines, if a job that normally takes 30 seconds suddenly finishes in 2, something's probably off. But that only catches the obvious cases. The harder question is: should the job itself validate its own result? Like "I was supposed to create 10,000 records, I created 400, that's not right"? Or is that already business logic and doesn't belong in monitoring?
Because the moment you start checking results, you're basically writing tests for every job, and that feels like a rabbit hole.
Curious how you guys handle this. Do you just trust "no error = success" or do you actually verify what happened after the job ran?

https://preview.redd.it/h4rmtwsh5zvg1.png?width=1254&format=png&auto=webp&s=97bc1b8e41e91829b89a2408b1c35f7d9d294d42

Is it even worth digging into this or is it overengineering?

GitHub: https://github.com/RomaLytar/yammi-jobs-monitoring-laravel

reddit.com
u/Temporary_Tell3738 — 3 days ago
▲ 0 r/PHP

A job is "successful", but did nothing - how do you catch that?

6 days ago I was discussing queue monitoring in Laravel. Someone asked a really interesting question:

>

Example: a job was supposed to create ~2000 users, but ended up creating ~400 and still showed as success 🤡 That made me realize I wasn’t tracking this at all.

No errors → everything is green → but the data is already off. So I tried a simple approach: now each job builds a “normal” execution time baseline, and if a new run is:

  • suspiciously fast
  • or much slower than usual

it gets flagged as anomalous. Basically trying to catch silent failures where there’s no exception, but something clearly went wrong. Also added a few more things: when I detect jobs that stopped mid-execution, I can now get real-time notifications via Slack or Webhooks. For more critical cases, I can escalate alerts through PagerDuty or Opsgenie (I personally use both).

Curious how others handle this - do you track anything like this or rely on business-level checks?

reddit.com
u/Temporary_Tell3738 — 3 days ago
▲ 24 r/laravel

I built a lightweight alternative to Laravel Horizon that works without Redis (SQS / DB / sync supported)

I built a small package for Laravel to monitor queues without being tied to Redis.

Horizon is great, but:

- it requires Redis

- it's a bit heavy for small projects

- and it doesn’t really work if you're using SQS, database or sync drivers

In many cases, I just wanted to know:

- did my jobs run?

- which ones failed?

- why did they fail?

So I made a lightweight solution:

- works with any queue driver (Redis, SQS, database, sync)

- tracks full job lifecycle (processing / success / failed)

- shows retries and execution time

- simple Blade dashboard out of the box

- JSON API included (for custom frontends)

Setup is super simple:

composer require romalytar/yammi-jobs-monitoring-laravel

php artisan migrate

That’s it — you immediately get a UI at `/jobs-monitor`.

Would really appreciate any feedback

Especially what’s missing or what could be improved.

https://preview.redd.it/jgb5xlfetrug1.png?width=1332&format=png&auto=webp&s=fb0b94ebf589d5289236c737919a76fc2bbe065b

https://preview.redd.it/4o3w0mfetrug1.png?width=1390&format=png&auto=webp&s=bbc0a5935b1b23a8b339b7e3ee2b2b430aaaf791

GitHub: https://github.com/RomaLytar/yammi-jobs-monitoring-laravel

reddit.com
u/Temporary_Tell3738 — 9 days ago