diff --git a/docs/docs/SUMMARY.md b/docs/docs/SUMMARY.md index 6f998be4f8..840285dfa4 100644 --- a/docs/docs/SUMMARY.md +++ b/docs/docs/SUMMARY.md @@ -97,6 +97,7 @@ search: - [Message Information](nats/message.md) - [How-To](howto/nats/index.md) - [DynaConf](howto/nats/dynaconf.md) + - [In-Progess](howto/nats/in-progress.md) - [Redis](redis/index.md) - [Pub/Sub](redis/pubsub/index.md) - [Subscription](redis/pubsub/subscription.md) diff --git a/docs/docs/en/howto/nats/in-progress.md b/docs/docs/en/howto/nats/in-progress.md new file mode 100644 index 0000000000..34e895b63c --- /dev/null +++ b/docs/docs/en/howto/nats/in-progress.md @@ -0,0 +1,39 @@ +--- +# 0.5 - API +# 2 - Release +# 3 - Contributing +# 5 - Template Page +# 10 - Default +search: + boost: 10 +--- + +# In-Progress sender + +Nats Jetstream uses the at least once principle, so the message will be delivered until it receives the ACK status (even if your handler takes a long time to process the message), so you can extend the message processing status with a request + +??? example "Full Example" + ```python linenums="1" + import asyncio + + from faststream import Depends, FastStream + from faststream.nats import NatsBroker, NatsMessage + + broker = NatsBroker() + app = FastStream(broker) + + async def progress_sender(message: NatsMessage): + async def in_progress_task(): + while True: + await asyncio.sleep(10.0) + await message.in_progress() + + task = asyncio.create_task(in_progress_task()) + yield + task.cancel() + + @broker.subscriber("test", dependencies=[Depends(progress_sender)]) + async def handler(): + await asyncio.sleep(20.0) + + ``` diff --git a/docs/docs/navigation_template.txt b/docs/docs/navigation_template.txt index 4cd45d0874..4fc4697281 100644 --- a/docs/docs/navigation_template.txt +++ b/docs/docs/navigation_template.txt @@ -97,6 +97,7 @@ search: - [Message Information](nats/message.md) - [How-To](howto/nats/index.md) - [DynaConf](howto/nats/dynaconf.md) + - [In-Progess](howto/nats/in-progress.md) - [Redis](redis/index.md) - [Pub/Sub](redis/pubsub/index.md) - [Subscription](redis/pubsub/subscription.md)