method
write_serialized_entry
v8.0.0 -
Show latest stable
- Class:
ActiveSupport::Cache::RedisCacheStore
write_serialized_entry(key, payload, raw: false, unless_exist: false, expires_in: nil, race_condition_ttl: nil, pipeline: nil, **options)private
No documentation available.
# File activesupport/lib/active_support/cache/redis_cache_store.rb, line 361
def write_serialized_entry(key, payload, raw: false, unless_exist: false, expires_in: nil, race_condition_ttl: nil, pipeline: nil, **options)
# If race condition TTL is in use, ensure that cache entries
# stick around a bit longer after they would have expired
# so we can purposefully serve stale entries.
if race_condition_ttl && expires_in && expires_in > 0 && !raw
expires_in += 5.minutes
end
modifiers = {}
if unless_exist || expires_in
modifiers[:nx] = unless_exist
modifiers[:px] = (1000 * expires_in.to_f).ceil if expires_in
end
if pipeline
pipeline.set(key, payload, **modifiers)
else
failsafe :write_entry, returning: nil do
redis.then { |c| !!c.set(key, payload, **modifiers) }
end
end
end