Invert execution orders of post, on_error and shutdown middleware hooks #359
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.
Hi,
I've further noticed that we could introduce a slight improvement to make middlewares follow the "onion" execution order. For example, if a
message
is wrapped withpre_send
of multiple middlewares, it's generally better to runpost_send
in reversed order.I've then inverted the order of
post_execute
,shutdown
,on_error
, andpost_save
so that all existing middleware hooks have an onion-ish invoke order.A practical use case is that some of my middlewares do modifications to add a mark in
pre_send
and remove it inpost_send
. However, without this improvement I couldn't make the mark invisible to other middlewares.The unit tests I added could fail because of other issues: #358 and #357
As always, let me know if you have suggestions or concerns, and thanks for the review in advance!