From 71204abb4cc311086b1e53fbbfaa4ddd3fad679c Mon Sep 17 00:00:00 2001 From: mate0021 Date: Sun, 20 Mar 2022 07:47:27 +0100 Subject: [PATCH] Challenge #6 --- .../university/RU102J/dao/FeedDaoRedisImpl.java | 11 +++++++++++ .../university/RU102J/dao/FeedDaoRedisImplTest.java | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImpl.java b/src/main/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImpl.java index 4d34dd3..fb13c1b 100644 --- a/src/main/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImpl.java +++ b/src/main/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImpl.java @@ -5,7 +5,9 @@ import java.nio.channels.Pipe; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; public class FeedDaoRedisImpl implements FeedDao { @@ -22,6 +24,15 @@ public FeedDaoRedisImpl(JedisPool jedisPool) { @Override public void insert(MeterReading meterReading) { // START Challenge #6 + String globalKey = RedisSchema.getGlobalFeedKey(); + String localKey = RedisSchema.getFeedKey(meterReading.getSiteId()); + + try (Jedis jedis = jedisPool.getResource()) { + final Pipeline p = jedis.pipelined(); + p.xadd(globalKey, StreamEntryID.NEW_ENTRY, meterReading.toMap(), globalMaxFeedLength, true); + p.xadd(localKey, StreamEntryID.NEW_ENTRY, meterReading.toMap(), siteMaxFeedLength, true); + p.sync(); + } // END Challenge #6 } diff --git a/src/test/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImplTest.java b/src/test/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImplTest.java index bb95831..c68f2f5 100644 --- a/src/test/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImplTest.java +++ b/src/test/java/com/redislabs/university/RU102J/dao/FeedDaoRedisImplTest.java @@ -53,7 +53,7 @@ public void flush() { } // Challenge #6 - @Ignore +// @Ignore @Test public void testBasicInsertReturnsRecent() { FeedDao dao = new FeedDaoRedisImpl(jedisPool);