@@ -100,7 +100,7 @@ public abstract class FitbitPollingRoute implements PollingRequestRoute {
100100 protected static final TemporalAmount ONE_SECOND = SECONDS .getDuration ();
101101 protected static final TemporalAmount ONE_MINUTE = MINUTES .getDuration ();
102102
103- private static final Logger logger = LoggerFactory .getLogger (FitbitSleepRoute .class );
103+ private static final Logger logger = LoggerFactory .getLogger (FitbitPollingRoute .class );
104104
105105 /** Committed offsets. */
106106 private Map <String , Instant > offsets ;
@@ -164,7 +164,7 @@ public void requestEmpty(RestRequest request) {
164164 @ Override
165165 public void requestFailed (RestRequest request , Response response ) {
166166 if (response != null && response .code () == 429 ) {
167- User user = ((FitbitRestRequest )request ).getUser ();
167+ User user = ((FitbitRestRequest ) request ).getUser ();
168168 tooManyRequestsForUser .add (user );
169169 String cooldownString = response .header ("Retry-After" );
170170 Duration cooldown = getTooManyRequestsCooldown ();
@@ -179,6 +179,8 @@ public void requestFailed(RestRequest request, Response response) {
179179 lastPollPerUser .put (user .getId (), backOff );
180180 logger .info ("Too many requests for user {}. Backing off until {}" ,
181181 user , backOff .plus (getPollIntervalPerUser ()));
182+ } else if (response != null ) {
183+ logger .warn ("Failed to make request {}. Response is: {}" , request , response );
182184 } else {
183185 logger .warn ("Failed to make request {}" , request );
184186 }
@@ -197,8 +199,11 @@ public Stream<FitbitRestRequest> requests() {
197199 lastPoll = Instant .now ();
198200 try {
199201 return userRepository .stream ()
202+ // Collect Instant of nextPoll for each user
200203 .map (u -> new AbstractMap .SimpleImmutableEntry <>(u , nextPoll (u )))
204+ // Keep users where the lastPoll is later than the nextPoll for the user (i.e., user needs to be polled)
201205 .filter (u -> lastPoll .isAfter (u .getValue ()))
206+ // Sort users by nextPoll (old to new?)
202207 .sorted (Map .Entry .comparingByValue ())
203208 .flatMap (u -> this .createRequests (u .getKey ()))
204209 .filter (Objects ::nonNull );
0 commit comments