``` ruby retries.times do |count| return yield if acquire_lock(key, lock_expiry) raise MaxRetriesError if count == retries - 1 exponential_sleep(count) unless count == retries - 1 end ``` 在重试的过程中,有可能别的进程执行了action,写回了缓存。所以应该在重试的时候检查缓存是否存在。