Add support for job dependencies in pg boss#747
Open
klesgidis wants to merge 1 commit intotimgit:masterfrom
Open
Add support for job dependencies in pg boss#747klesgidis wants to merge 1 commit intotimgit:masterfrom
klesgidis wants to merge 1 commit intotimgit:masterfrom
Conversation
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.
Summary
Add first-class job dependencies to pg-boss — a job can declare
dependsOnparent jobs and won't be fetched until all parents complete. Enables fan-in and pipeline patterns without application-level orchestration.What changed
dependsOnoption onsend()/insert()— dependent jobs are inserted asblocked = true, invisible tofetchjob_dependencytable — normalized parent/child tracking with efficient indexes for both directionscompleteJobschecks and unblocks children when all parents are done (no-op for queues without dependencies)blockingflag on parent jobs — lets the completion CTE short-circuitjob_i5fetch index — addsAND NOT blockedat the index level, zero cost for non-dependent jobsgetDependencies()/getDependents()— query the dependency graphUsage
Resolves #745