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