[5.5] Clone Job specific properties #19123
Merged
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.
Taking a
Mailable
for example, while queuing it aSendQueuedMailable
is dispatched which holds the mailable as a$mailable
property.While the job is being serialized, if the mailable uses the
SerializesModels
trait all properties referencing an Eloquent Model will have its value replaced with aModelIdentifier
, taking into account that we serialize a cone of the jobin Queue::createObjectPayload()
one might think that the mailer object will still hold references to Model objects in the original job instance, but this is not the case since the original job and the clone both points to the same reference of the mailable, and thus the __sleep method that ran while serializing will affect the mailable in the original as well.