Support async LitAPI.health() and await it in /health
#604
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.
Description
This PR enhances the
LitAPI.health()method to support both synchronous and asynchronous implementations by allowing the return type to bebool | Awaitable[bool].Previously, coroutine objects returned by
health()were not awaited, leading to incorrect health reporting. The server now detects if the result is awaitable and properly awaits it, ensuring accurate readiness checks.Key Changes
LitAPI.health()can now return a coroutine.inspect.isawaitable()to detect and await async returns.async def health()method.Why this matters
Many real-world deployments require async health checks — e.g., pinging background workers, databases, or message queues. This change makes
LitServeproduction-ready for those scenarios.Compatibility
bool | Awaitable[bool]) syntax used — requires Python ≥ 3.10.Example