Streaming y trabajos asincrónicos
Hay dos mecanismos “asincrónicos” diferentes en API y SDK los maneja por separado:
- Transmisión de respuesta (
/convert/stream, /convert/stream-from-url): el servidor genera el Markdown en fragmentos progresivos durante la conversión, para reducir el TTFB en documentos grandes.
- Trabajos de saturación (
202): cuando todos los servidores están ocupados, cualquier punto final de conversión pone en cola la solicitud y responde 202 con un job_id para realizar una consulta más tarde. Consulte GET /jobs/{id}.
Transmitiendo con convert_stream
convert_stream devuelve un iterador Iterator[str]; cada elemento es un fragmento de Markdown, no necesariamente una línea o página completa. Concatenarlos para reconstruir el documento.
stream_slim_strategy
Controla cómo se limpian los encabezados y pies de página repetidos sin sacrificar demasiado TTFB:
"off": streaming puro por página, sin detección de ruido. TTFB mínimo.
"sampled" (predeterminado): muestree las primeras páginas en busca de ruido y luego genere por página.
"full": materializa el documento completo antes de su emisión. Mejor limpieza, peor TTFB.
Consulte Parámetros.
Empleos por saturación (202)
De forma predeterminada, convert_file y convert_from_url manejan 202 de forma transparente:
Internamente, si el servidor responde 202, el SDK:
- Lea
job_id y retry_after_seconds de la respuesta.
- Dormir
retry_after_seconds (5 segundos por defecto).
- Llama
GET /jobs/{job_id}.
- Repite mientras
status sea "queued" o "processing".
- Devuelve
body cuando status == "completed", o arroja MarkpdfJobFailedError si status == "failed".
Manual de encuestas
Si prefieres controlar el bucle tú mismo (por ejemplo, para mostrar el progreso en una interfaz de usuario), desactiva la encuesta automática:
En condiciones de carga normales, nunca verá 202; solo sucede cuando todos los backends están saturados. No necesita diseñar su aplicación asumiendo que siempre sucederá; auto_poll=True (el valor predeterminado) ya lo cubre sin código adicional.
Los resultados de los trabajos completados caducan en aproximadamente 1 hora. Si guarda job_id para referencia posterior y recibe 404, reenvíe la conversión original.