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.
This proposed solution addresses an issue encountered when attempting to utilize acknowledgment functionality.
Currently, the
Receiver
module contains two types of messages:AckableMessage
originating from the broker, which includes anack
method to be executed upon task completion for acknowledging the message, andTaskiqMessage
containing execution information passed to therun_task
method responsible for task execution.The challenge arises when a task encounters an exception, as there is presently no mechanism to modify the behavior of the
ack
method, resulting in automatic acknowledgment of the message. To mitigate this, we have introduced the passing of theack
method within theTaskiqMessage
. This grants access to theack
method within therun_task
context, enabling us to utilize aTaskiqMiddleware.on_error
method. This method accepts theTaskiqMessage
and adjusts the behavior of theack
method according to the desired logic in the event of a task failure.Returning to the
Receiver
, the updatedack
method will now be executed, resolving the issue of unintended acknowledgments for failed tasks.While this solution addresses the immediate challenge, it's important to recognize that there may be alternative approaches. I welcome any feedback, suggestions, or alternative solutions.