Saltar al contenido principal
Al consumir datos de streaming, maximizar el tiempo de conexión y recibir todos los datos coincidentes es un objetivo fundamental. Esto significa que es importante aprovechar las conexiones redundantes, detectar automáticamente las desconexiones, reconectarse rápidamente y contar con un plan para recuperar los datos perdidos. En esta guía de integración, trataremos diferentes características de recuperación y redundancia: conexiones redundantes, backfill y recuperación.  

Conexiones redundantes

Una conexión redundante te permite establecer más de una conexión simultánea al mismo stream. Esto proporciona redundancia al permitirte conectarte al mismo stream con dos consumidores independientes, recibiendo los mismos datos a través de ambas conexiones. De este modo, tu app tiene una conmutación por error en caliente para diversas situaciones, como si un stream se desconecta o si falla el servidor principal de tu aplicación. Para usar un stream redundante, simplemente conéctate a la misma URL utilizada para tu conexión principal. Los datos de tu stream se enviarán a través de ambas conexiones.

Backfill

Después de detectar una desconexión, tu sistema debería ser lo suficientemente inteligente como para reconectarse al stream. Si es posible, tu sistema debería registrar cuánto tiempo duró la desconexión para que puedas usar la función de recuperación adecuada y recuperar los datos que falten.  Si identificas que la desconexión duró cinco minutos o menos, puedes usar el parámetro de backfill, backfillMinutes. Si incluyes este parámetro en tu solicitud GET /powerstream, recibirás las Publicaciones que coincidan con tus reglas de entre el último minuto y los últimos cinco minutos. Por lo general, entregamos primero estas Publicaciones más antiguas antes que cualquier Publicación nueva que coincida, y tampoco desduplicamos las Publicaciones. Esto significa que, si estuviste desconectado durante 90 segundos pero solicitas dos minutos de datos de backfill, recibirás 30 segundos de Publicaciones duplicadas, lo cual tu sistema debe poder tolerar. Aquí tienes un ejemplo de cómo podría verse una solicitud con el parámetro de backfill: curl 'https://api.x.com/2/powerstream?backfillMinutes=5' -H "Authorization: Bearer $ACCESS_TOKEN" Si identificas que la desconexión duró más de cinco minutos, puedes utilizar el endpoint de búsqueda reciente o la función de recuperación para solicitar los datos que falten. 

Recuperación

Puedes usar la función de recuperación para recuperar datos perdidos en las últimas 24 horas si no puedes volver a conectarte dentro de la ventana de backfill de 5 minutos. La función de recuperación de streaming te permite disponer de una ventana de backfill ampliada de 24 horas. La recuperación te permite “reproducir” el período de tiempo de los datos perdidos. Se inicia un flujo de recuperación cuando realizas una solicitud de conexión usando los parámetros de solicitud startTime y endTime. Una vez establecida la conexión, la recuperación volverá a transmitir el período de tiempo indicado y luego se desconectará.  
NameTypeDescription
startTimedate (ISO 8601)YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

Fecha en UTC que indica la hora de inicio desde la que se van a recuperar los datos.
endTimedate (ISO 8601)YYYY-MM-DDTHH:mm:ssZ (ISO 8601/RFC 3339).

Fecha en UTC que indica la hora de finalización hasta la que se van a recuperar los datos.
Ejemplo de URL de solicitud: https://api.x.com/2/powerstream?startTime=2022-07-12T15:10:00Z&endTime=2022-07-12T15:20:00Z