This repository was archived by the owner on May 14, 2024. It is now read-only.
Add recoverable decorator to retry non-query operations in case of lost connection#307
Open
onlywade wants to merge 2 commits into
Open
Add recoverable decorator to retry non-query operations in case of lost connection#307onlywade wants to merge 2 commits into
onlywade wants to merge 2 commits into
Conversation
Similar to the `@run` decorator, this decorator causes a wrapped method to be retried in the case that the method throws an exception which appears to be caused by a lost connection. While the `@run` decorator is limited to wrapping methods with a particular signature (including `query` and `bindings` params, the `@recoverable` decorator is more generally applicable.
5bab544 to
5824ff8
Compare
In the event that the connection has been lost, causing an exception when the connection attempts to set the autoconnect mode, the operation should be retried.
5824ff8 to
751bd45
Compare
Author
|
Hi @sdispater, any thoughts on this proposed fix? Please let me know if you have any concerns with the approach or anything. Thanks! |
|
@sdispater any updates on this? we would like to see this fix (or the other similar PR) in the next release. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Similar to the
@rundecorator, this decorator causes a wrapped method to be retried in the case that the method throws an exception which appears to be due to a lost connection.While the
@rundecorator is limited to wrapping methods with a particular signature (includingqueryandbindingsparams), the@recoverabledecorator is more generally applicable.The
@recoverabledecorator can be applied toMySQLConnection.begin_transaction()in order to provide protection from stale connections in that context.Note that a more direct approach does exist to this problem, as illustrated in #298. I would be most thankful if either approach is adopted!