Corrutinas y trabajos asincrónicos
Todos los métodos MarkpdfClient son suspend fun: no bloquean el hilo mientras esperan la respuesta HTTP y se integran naturalmente con viewModelScope, lifecycleScope, Dispatchers.IO o cualquier CoroutineScope propio.
Además, hay un mecanismo separado en el servidor: cuando todos los servidores de conversión están saturados, API responde a 202 con un job_id en lugar de bloquear la solicitud. Consulte GET /jobs/{id}.
Uso básico con runBlocking
Para scripts o main():
De ViewModel (Android)
Conversiones paralelas con async
La paralelización agresiva de solicitudes puede desencadenar 429. Limite la simultaneidad (por ejemplo, con Semaphore(n) alrededor de cada async) si convierte muchos documentos a la vez.
Empleos por saturación (202)
De forma predeterminada, todos los métodos de conversión manejan 202 de forma transparente (ConvertOptions.autoPoll es true):
Manual de encuestas
Exponer el progreso como Flow
En condiciones de carga normales, no verá 202; solo sucede cuando todos los backends están saturados. autoPoll: true (el valor predeterminado) ya lo cubre sin código adicional en la mayoría de los casos.
Los resultados de los trabajos completados caducan en aproximadamente 1 hora. Si guarda un jobId y recibe 404 al consultarlo, reenvíe la conversión original.