maxbrokman / SafeQueue

Laravel Doctrine friendly queue worker
MIT License
30 stars 28 forks source link

When using Redis queues a failure of the Redis server causes infinite exception logging. #8

Closed cooperaj closed 7 years ago

cooperaj commented 7 years ago

I've reported this against Laravel but we actually use your queue implementation since we use Doctrine. That being the case I'm reporting it here too since you re-implement the same, not quite right, code that handles this.

https://github.com/laravel/framework/issues/16537

Essentially, it's taken three servers with hard drives full of exception logs to track down that workers should not try to do the same thing over and over again.

maxbrokman commented 7 years ago

Yeah this is a problem I've seen myself actually, but I think it's one that will have to be handled in Laravel itself and we'll adapt around what they do.

For testing purposes mainly we do have a QueueMustStop interface that if attached to an exception forces the daemon to exit. Laravel needs something similar or a more sophisticated backoff mechanism certainly.

maxbrokman commented 7 years ago

@cooperaj I'm going to close this, laravel/framework#16537 is the problem and I don't see how we could really solve this here without further hacking apart the upstream functionality. At that point I'd probably be better off writing my own implementation that can consume messages Laravel produces.

edit: I see your issue was closed unfortunately :(