@@ -80,20 +80,20 @@ private void updateBasic(Jedis jedis, String key, MeterReading reading) {
8080
8181 // Challenge #3
8282 private void updateOptimized (Jedis jedis , String key , MeterReading reading ) {
83- CompareAndUpdateScript compareScript = new CompareAndUpdateScript ( jedisPool );
83+ String reportingTime = ZonedDateTime . now ( ZoneOffset . UTC ). toString ( );
8484
85- Transaction jedisT = jedis .multi ();
85+ try ( Transaction jedisT = jedis .multi ()) {
8686
87- String reportingTime = ZonedDateTime .now (ZoneOffset .UTC ).toString ();
88- jedisT .hset (key , SiteStats .reportingTimeField , reportingTime );
89- jedisT .hincrBy (key , SiteStats .countField , 1 );
90- jedisT .expire (key , WEEK_SECONDS );
87+ jedisT .hset (key , SiteStats .reportingTimeField , reportingTime );
88+ jedisT .hincrBy (key , SiteStats .countField , 1 );
89+ jedisT .expire (key , WEEK_SECONDS );
9190
92- compareScript .updateIfGreater (jedisT , key , SiteStats .maxWhField , reading .getWhGenerated ());
93- compareScript .updateIfLess (jedisT , key , SiteStats .minWhField , reading .getWhGenerated ());
94- compareScript .updateIfGreater (jedisT , key , SiteStats .maxCapacityField , getCurrentCapacity (reading ));
91+ compareAndUpdateScript .updateIfGreater (jedisT , key , SiteStats .maxWhField , reading .getWhGenerated ());
92+ compareAndUpdateScript .updateIfLess (jedisT , key , SiteStats .minWhField , reading .getWhGenerated ());
93+ compareAndUpdateScript .updateIfGreater (jedisT , key , SiteStats .maxCapacityField , getCurrentCapacity (reading ));
9594
96- jedisT .exec ();
95+ jedisT .exec ();
96+ }
9797 }
9898
9999 private Double getCurrentCapacity (MeterReading reading ) {
0 commit comments