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.
Here was added a new HASH key
objects:list-created-times
After creating subscriptions (and channels later), we will add a subscription's name and the current time to this hash.
We will use it in
GraphQL::AnyCable::Cleaner
to remove the old keys, who hascreated_time + config.subscription_expiration_seconds
But there is one problem.
If we have
config.subscription_expiration_seconds
, we will set EXPIRE hereIt means that when Redis destroys this key, this key will remain storing in
objects:list-created-times
hashI also considered a separate key, something like this
In other words, every
subscription
had a Redis key, where has a nametime:#{subscription_key_name}
and value as thecurrent date
But I refused this idea because it creates a lot of records in Redis (one subscription = one
time:subscription
), but there was a plus - we could setexpire
for every keyThis is not the final PR