Skip to content

Add JetStream acknowledgement progress#27

Open
vvanglro wants to merge 1 commit into
taskiq-python:masterfrom
vvanglro:nats
Open

Add JetStream acknowledgement progress#27
vvanglro wants to merge 1 commit into
taskiq-python:masterfrom
vvanglro:nats

Conversation

@vvanglro

Copy link
Copy Markdown

Why

Long-running JetStream tasks need to report progress before the consumer's acknowledgement deadline expires, otherwise NATS can redeliver a message that is still being processed.

Summary

  • expose nats-py's Msg.in_progress() through AckableMessage.ack_progress
  • support both PushBasedJetStreamBroker and PullBasedJetStreamBroker
  • add callback forwarding and live JetStream integration coverage
  • document using Context.ack_progress() for long-running tasks

Dependency

Depends on taskiq-python/taskiq#640. The core acknowledgement-progress API must be available before this integration can be released.

Tests

  • full test suite against NATS Server 2.10.12 with JetStream — 15 passed
  • verified that progress resets ack_wait and prevents premature redelivery
  • verified that the message is redelivered after progress reports stop
  • ruff check .
  • black --check .
  • mypy taskiq_nats

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant