Skip to content

Conversation

@bbakerman
Copy link
Member

@bbakerman bbakerman commented Sep 25, 2023

This creates a ticker mode where by calls to the dataloaders will always be rescheduled after the first .dispatch() call is made

Read the readme and javadoc in the PR for all gory details

…duled_registry # Conflicts: #	src/test/java/ReadmeExamples.java
…s bitches! Found a bug in the sum code that I refactored way
@kaqqao
Copy link

kaqqao commented Sep 25, 2023

I didn't really go into the code (reading on the phone) but from the README itself, I only understand when dispatching doesn't occur, not when it does. Could honestly just be me, but I feel like the explanation should be a bit clearer 😶

@bbakerman
Copy link
Member Author

I didn't really go into the code (reading on the phone) but from the README itself, I only understand when dispatching doesn't occur, not when it does. Could honestly just be me, but I feel like the explanation should be a bit clearer 😶

I have updated the README to outline the algorithm.

@kaqqao
Copy link

kaqqao commented Sep 26, 2023

Thanks! Much appreciated!

@srinivasankavitha
Copy link

@bbakerman - any idea when this change will be released?

@bbakerman
Copy link
Member Author

@bbakerman - any idea when this change will be released?

Maybe by mid october ish

@srinivasankavitha
Copy link

@bbakerman - any idea when this change will be released?

Maybe by mid october ish

That would be great! Thank you!

…duled_registry # Conflicts: #	src/main/java/org/dataloader/registries/ScheduledDataLoaderRegistry.java
@bbakerman bbakerman added this to the 3.2.1 milestone Oct 8, 2023
@dondonz dondonz merged commit 5f8ec4a into master Oct 17, 2023
@bbakerman
Copy link
Member Author

3.2.1 has been released

@dondonz dondonz deleted the ticker_mode_on_scheduled_registry branch October 17, 2023 05:20
github-merge-queue bot referenced this pull request in camunda/camunda Apr 24, 2024
…ain) (#17708) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.graphql-java:java-dataloader](https://togithub.com/graphql-java/java-dataloader) | `3.2.0` -> `3.3.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.graphql-java:java-dataloader/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.graphql-java:java-dataloader/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.graphql-java:java-dataloader/3.2.0/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.graphql-java:java-dataloader/3.2.0/3.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>graphql-java/java-dataloader (com.graphql-java:java-dataloader)</summary> ### [`v3.3.0`](https://togithub.com/graphql-java/java-dataloader/releases/tag/v3.3.0): 3.3.0 [Compare Source](https://togithub.com/graphql-java/java-dataloader/compare/v3.2.2...v3.3.0) #### What's Changed - Pre-size resulting lists by [@&#8203;dfa1](https://togithub.com/dfa1) in [https://github.com/graphql-java/java-dataloader/pull/142](https://togithub.com/graphql-java/java-dataloader/pull/142) - Minor javadoc fixes by [@&#8203;dfa1](https://togithub.com/dfa1) in [https://github.com/graphql-java/java-dataloader/pull/141](https://togithub.com/graphql-java/java-dataloader/pull/141) - Shuts down executor if its was auto added by our code by [@&#8203;bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/144](https://togithub.com/graphql-java/java-dataloader/pull/144) - If there is a specific predicate for a dataloader - its is the final say on whether to dispatch by [@&#8203;bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/145](https://togithub.com/graphql-java/java-dataloader/pull/145) **Full Changelog**: graphql-java/java-dataloader@v3.2.2...v3.3.0 ### [`v3.2.2`](https://togithub.com/graphql-java/java-dataloader/releases/tag/v3.2.2): 3.2.2 [Compare Source](https://togithub.com/graphql-java/java-dataloader/compare/v3.2.1...v3.2.2) #### What's Changed A series of small fixes to make the code more efficient - Lazily initialize Executor in ScheduledDataLoaderRegistry builder by [@&#8203;kilink](https://togithub.com/kilink) in [https://github.com/graphql-java/java-dataloader/pull/135](https://togithub.com/graphql-java/java-dataloader/pull/135) - Avoid allocations in DataLoaderHelper.dispatch when there's no work by [@&#8203;kilink](https://togithub.com/kilink) in [https://github.com/graphql-java/java-dataloader/pull/136](https://togithub.com/graphql-java/java-dataloader/pull/136) #### New Contributors - [@&#8203;kilink](https://togithub.com/kilink) made their first contribution in [https://github.com/graphql-java/java-dataloader/pull/135](https://togithub.com/graphql-java/java-dataloader/pull/135) **Full Changelog**: graphql-java/java-dataloader@v3.2.1...v3.2.2 ### [`v3.2.1`](https://togithub.com/graphql-java/java-dataloader/releases/tag/v3.2.1): 3.2.1 [Compare Source](https://togithub.com/graphql-java/java-dataloader/compare/v3.2.0...v3.2.1) ### New ticker mode There is a new mode in `ScheduledDataLoaderRegistry` called ticker mode that will continue to tick away and allow for chained data loader calls. See the readme for more details. ```java ScheduledDataLoaderRegistry registry = ScheduledDataLoaderRegistry.newScheduledRegistry() .register("a", dataLoaderA) .register("b", dataLoaderB) .scheduledExecutorService(executorService) .schedule(Duration.ofMillis(10)) .tickerMode(true) // ticker mode is on .build(); CompletableFuture<Object> chainedCalls = dataLoaderA.load("user1") .thenCompose(userAsKey -> dataLoaderB.load(userAsKey)); ``` ### Predicates per dataloader in ScheduledDataLoaderRegistry `ScheduledDataLoaderRegistry` now has the capability to have a predicate per data loader specified as well as an overall one. This allows you to have fine control on when dataloaders get dispatched. #### What's Changed - Try.getThrowable - fixed incorrect exception message by [@&#8203;rstata](https://togithub.com/rstata) in [https://github.com/graphql-java/java-dataloader/pull/122](https://togithub.com/graphql-java/java-dataloader/pull/122) - Prepend 0.0.0 to build version by [@&#8203;dondonz](https://togithub.com/dondonz) in [https://github.com/graphql-java/java-dataloader/pull/126](https://togithub.com/graphql-java/java-dataloader/pull/126) - Batch scheduler function support by [@&#8203;bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/128](https://togithub.com/graphql-java/java-dataloader/pull/128) - Adds a predicate to DataLoaderRegistry and a per dataloader map of pedicates is also possible by [@&#8203;bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/133](https://togithub.com/graphql-java/java-dataloader/pull/133) - Ticker mode on ScheduledDataLoaderRegistry by [@&#8203;bbakerman](https://togithub.com/bbakerman) in [https://github.com/graphql-java/java-dataloader/pull/131](https://togithub.com/graphql-java/java-dataloader/pull/131) #### New Contributors - [@&#8203;rstata](https://togithub.com/rstata) made their first contribution in [https://github.com/graphql-java/java-dataloader/pull/122](https://togithub.com/graphql-java/java-dataloader/pull/122) - [@&#8203;dondonz](https://togithub.com/dondonz) made their first contribution in [https://github.com/graphql-java/java-dataloader/pull/126](https://togithub.com/graphql-java/java-dataloader/pull/126) **Full Changelog**: graphql-java/java-dataloader@v3.2.0...v3.2.1 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 10pm every weekday,before 6am every weekday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/camunda/zeebe). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMTMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjMxMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJhdXRvbWVyZ2UiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

5 participants