Run prepareNestedBatches on append/prependToChain & chain #52486
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.
The issue with appending/prepending a batch from within a job
Currently, when appending or prepending a batch from within a job, you get the following error:
Diving into the Queuable class, this is because prepend/appendToChain fails to turn the
PendingBatch
into aChainedBatch
. The workaround for this is by creating a ChainedBatch manually as described here:#52468
Proposal
Run
ChainedBatch::prepareNestedBatches
when appending or prepending a job from within another job, so you can add a batch onto a current chain as follows:Discussion
Currently, my implementation of appendToChain/prependToChain wraps the single job in a collection to match the expected format of
ChainedBatch::prepareNestedBatches()
- this feels kinda unnecessary, so this could be further improved by either:prepareNestedBatches
and creating a method that accepts a single job (in addition to the currently available method that accepts a collection)Happy to make the necessary changes if needed.