class TimedCache
def value
def value now = Time.now if stored = stored_value if (now - @ttl).to_i >= stored.timestamp Thread.new { sleep @jitter if stored_value.timestamp <= stored.timestamp @redis.set namespaced(@name), new_value(now).to_json end } end stored.value else nv = new_value(now) @redis.set namespaced(@name), nv.to_json nv.value end end