pub async fn lock<T: AsyncConnectionLike, K: ToRedisArgs>( conn: &mut T, lock_keys: K, duration: Duration, retry_interval: Duration, retry_timeout: Option<Duration>, ) -> Result<String>