[10.x] Disable PhpRedis serialization & compression for RedisQueue #47531
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses issue #47356 : PhpRedis Serialization & compression within queues messes with Lua scripts. As a result, event listeners & jobs are being pushed to :reserved queues, even when finished successfully, filling up the Redis memory in no-time.
This PR disables compression & serialization for Redis queues, without losing the benefits of compression & igbinary/msgpack serialization for caching purposes. It checks if the current Redis connection is handled by PhpRedis & if the Redis extension is installed (thus not affecting Predis).
As of the coding style:
I've figured the RedisQueue constructor would be the best fit, even though I usually avoid calling methods within constructors. It could also be added to the QueueServiceProvider.
I'm not too sure if checking for PhpRedis is really necessary, as - as far as I can see - Predis would simply ignore those settings. Yet, at least for better understanding of the code, I've added the check. Checking for constants is added to avoid hickups if Redis extension is not installed, thus no constants would be available.
Feedback is greatly appreciated!