Repository navigation
fix: key inherited jobs by the provider's class - #39
Merged
Merged
Conversation
A method decorated with @OnOneInstance() or @WithoutOverlapping() on a base class took its default key from the class that declares it, so every subclass shared one run lock and one lease: one subclass's runs were skipped while another's ran, and the startup check, which compared job definitions, never saw two jobs. The default key, the lease and the log lines now follow the instance's class (SalesReport.run, StockReport.run), and the collision check is per instance, so one class provided twice without a key fails at startup too. A `useExisting` alias of the same instance is not a second job. Closes #38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A job inherited from a base class now gets its default key and lease from the provider's class (SalesReport.run, StockReport.run), not from the class that declares the method. The startup collision check now works per instance, so a
useExistingalias of the same instance is not counted as a second job.Two behavior changes:
keyexplicitly avoids it.keynow fails at startup, as two classes with the same default key already did.Closes #38