Skip to content

Commit 1d11d87

Browse files
committed
This adds a ticker mode to ScheduledDataLoaderRegistry - testing works bitches! Found a bug in the sum code that I refactored way
1 parent 96b3ce7 commit 1d11d87

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

src/main/java/org/dataloader/registries/ScheduledDataLoaderRegistry.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public int dispatchAllWithCount() {
9696
for (Map.Entry<String, DataLoader<?, ?>> entry : dataLoaders.entrySet()) {
9797
DataLoader<?, ?> dataLoader = entry.getValue();
9898
String key = entry.getKey();
99-
dispatchOrReschedule(key, dataLoader);
99+
sum += dispatchOrReschedule(key, dataLoader);
100100
}
101101
return sum;
102102
}
@@ -134,14 +134,16 @@ private void reschedule(String key, DataLoader<?, ?> dataLoader) {
134134
}
135135
}
136136

137-
private void dispatchOrReschedule(String key, DataLoader<?, ?> dataLoader) {
137+
private int dispatchOrReschedule(String key, DataLoader<?, ?> dataLoader) {
138+
int sum = 0;
138139
boolean shouldDispatch = dispatchPredicate.test(key, dataLoader);
139140
if (shouldDispatch) {
140-
dataLoader.dispatch();
141+
sum = dataLoader.dispatchWithCounts().getKeysCount();
141142
}
142143
if (tickerMode || !shouldDispatch) {
143144
reschedule(key, dataLoader);
144145
}
146+
return sum;
145147
}
146148

147149
/**

src/test/java/org/dataloader/registries/ScheduledDataLoaderRegistryTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,8 @@ public void test_can_tick_after_first_dispatch_for_chain_data_loaders() {
284284

285285
assertThat(registry.isTickerMode(), equalTo(true));
286286

287-
registry.dispatchAll();
287+
int count = registry.dispatchAllWithCount();
288+
assertThat(count,equalTo(1));
288289

289290
await().atMost(TWO_SECONDS).untilAtomic(done, is(true));
290291

@@ -312,7 +313,8 @@ public void test_chain_data_loaders_will_hang_if_not_in_ticker_mode() {
312313

313314
assertThat(registry.isTickerMode(), equalTo(false));
314315

315-
registry.dispatchAll();
316+
int count = registry.dispatchAllWithCount();
317+
assertThat(count,equalTo(1));
316318

317319
try {
318320
await().atMost(TWO_SECONDS).untilAtomic(done, is(true));

0 commit comments

Comments
 (0)