Make redis failures on write-back retrieve non-fatal
This commit is contained in:
parent
82486a873a
commit
b4c06db031
|
@ -46,7 +46,7 @@ public class UsernamesManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (databasePut(uuid, username)) {
|
if (databasePut(uuid, username)) {
|
||||||
redisSet(uuid, username);
|
redisSet(uuid, username, true);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,7 @@ public class UsernamesManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<UUID> retrieved = databaseGet(username);
|
Optional<UUID> retrieved = databaseGet(username);
|
||||||
retrieved.ifPresent(retrievedUuid -> redisSet(retrievedUuid, username));
|
retrieved.ifPresent(retrievedUuid -> redisSet(retrievedUuid, username, false));
|
||||||
|
|
||||||
return retrieved;
|
return retrieved;
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,7 @@ public class UsernamesManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
Optional<String> retrieved = databaseGet(uuid);
|
Optional<String> retrieved = databaseGet(uuid);
|
||||||
retrieved.ifPresent(retrievedUsername -> redisSet(uuid, retrievedUsername));
|
retrieved.ifPresent(retrievedUsername -> redisSet(uuid, retrievedUsername, false));
|
||||||
|
|
||||||
return retrieved;
|
return retrieved;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ public class UsernamesManager {
|
||||||
return usernames.get(uuid);
|
return usernames.get(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void redisSet(UUID uuid, String username) {
|
private void redisSet(UUID uuid, String username, boolean required) {
|
||||||
try (Jedis jedis = cacheClient.getWriteResource();
|
try (Jedis jedis = cacheClient.getWriteResource();
|
||||||
Timer.Context ignored = redisSetTimer.time())
|
Timer.Context ignored = redisSetTimer.time())
|
||||||
{
|
{
|
||||||
|
@ -116,6 +116,9 @@ public class UsernamesManager {
|
||||||
|
|
||||||
jedis.set(getUuidMapKey(uuid), username);
|
jedis.set(getUuidMapKey(uuid), username);
|
||||||
jedis.set(getUsernameMapKey(username), uuid.toString());
|
jedis.set(getUsernameMapKey(username), uuid.toString());
|
||||||
|
} catch (JedisException e) {
|
||||||
|
if (required) throw e;
|
||||||
|
else logger.warn("Ignoring jedis failure", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,7 @@ public class UsernamesManagerTest {
|
||||||
verify(jedis, times(1)).get(eq("UsernameByUsername::n00bkiller"));
|
verify(jedis, times(1)).get(eq("UsernameByUsername::n00bkiller"));
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUsername::n00bkiller"), eq(uuid.toString()));
|
verify(jedis, times(1)).set(eq("UsernameByUsername::n00bkiller"), eq(uuid.toString()));
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUuid::" + uuid.toString()), eq("n00bkiller"));
|
verify(jedis, times(1)).set(eq("UsernameByUuid::" + uuid.toString()), eq("n00bkiller"));
|
||||||
|
verify(jedis, times(1)).get(eq("UsernameByUuid::" + uuid.toString()));
|
||||||
verify(jedis, times(2)).close();
|
verify(jedis, times(2)).close();
|
||||||
verifyNoMoreInteractions(jedis);
|
verifyNoMoreInteractions(jedis);
|
||||||
|
|
||||||
|
@ -119,7 +120,7 @@ public class UsernamesManagerTest {
|
||||||
assertTrue(retrieved.isPresent());
|
assertTrue(retrieved.isPresent());
|
||||||
assertEquals(retrieved.get(), "n00bkiller");
|
assertEquals(retrieved.get(), "n00bkiller");
|
||||||
|
|
||||||
verify(jedis, times(1)).get(eq("UsernameByUuid::" + uuid));
|
verify(jedis, times(2)).get(eq("UsernameByUuid::" + uuid));
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUuid::" + uuid), eq("n00bkiller"));
|
verify(jedis, times(1)).set(eq("UsernameByUuid::" + uuid), eq("n00bkiller"));
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUsername::n00bkiller"), eq(uuid.toString()));
|
verify(jedis, times(1)).set(eq("UsernameByUsername::n00bkiller"), eq(uuid.toString()));
|
||||||
verify(jedis, times(2)).close();
|
verify(jedis, times(2)).close();
|
||||||
|
@ -152,6 +153,7 @@ public class UsernamesManagerTest {
|
||||||
verify(jedis, times(1)).get(eq("UsernameByUsername::n00bkiller"));
|
verify(jedis, times(1)).get(eq("UsernameByUsername::n00bkiller"));
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUsername::n00bkiller"), eq(uuid.toString()));
|
verify(jedis, times(1)).set(eq("UsernameByUsername::n00bkiller"), eq(uuid.toString()));
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUuid::" + uuid.toString()), eq("n00bkiller"));
|
verify(jedis, times(1)).set(eq("UsernameByUuid::" + uuid.toString()), eq("n00bkiller"));
|
||||||
|
verify(jedis, times(1)).get(eq("UsernameByUuid::" + uuid.toString()));
|
||||||
verify(jedis, times(2)).close();
|
verify(jedis, times(2)).close();
|
||||||
verifyNoMoreInteractions(jedis);
|
verifyNoMoreInteractions(jedis);
|
||||||
|
|
||||||
|
@ -179,9 +181,7 @@ public class UsernamesManagerTest {
|
||||||
assertTrue(retrieved.isPresent());
|
assertTrue(retrieved.isPresent());
|
||||||
assertEquals(retrieved.get(), "n00bkiller");
|
assertEquals(retrieved.get(), "n00bkiller");
|
||||||
|
|
||||||
verify(jedis, times(1)).get(eq("UsernameByUuid::" + uuid));
|
verify(jedis, times(2)).get(eq("UsernameByUuid::" + uuid));
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUsername::n00bkiller"), eq(uuid.toString()));
|
|
||||||
verify(jedis, times(1)).set(eq("UsernameByUuid::" + uuid.toString()), eq("n00bkiller"));
|
|
||||||
verify(jedis, times(2)).close();
|
verify(jedis, times(2)).close();
|
||||||
verifyNoMoreInteractions(jedis);
|
verifyNoMoreInteractions(jedis);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue