Con Pub/Sub Seek, los usuarios pueden volver a reproducir y procesar los mensajes de los que confirmaron recepción previamente, y también pueden confirmar recepción de mensajes en forma masiva. Sin embargo, no recomendamos el acceso directo a Pub/Sub Seek desde una canalización de Dataflow en ejecución. El acceso directo invalida la lógica de la marca de agua de Dataflow y no funciona bien con el procesamiento del tipo “exactamente una vez”. Además, el acceso directo entra en conflicto con el estado de una canalización que incorpora datos procesados.
Recomendamos usar Pub/Sub Seek con el siguiente flujo de trabajo:
- Haz una instantánea de la suscripción.
- Desvía los mensajes de la suscripción en Dataflow.
- Vuelva a enviar la canalización.
Crea una instantánea
Debes buscar y volver a procesar a partir de una instantánea de suscripción. Para crear esta instantánea con la herramienta de línea de comandos de gcloud
, ejecuta los siguientes comandos:
alias pubsub='gcloud pubsub' pubsub snapshots create my-snapshot --subscription=seek-demo-sub
Para verificar que creaste la instantánea, ejecuta el siguiente comando:
pubsub snapshots list
Desvía la suscripción
Para desviar la suscripción y volver a enviar la canalización, sigue estos pasos:
- Navega a la consola de Dataflow y haz clic en tu canalización de transmisión.
- En el panel Resumen, haz clic en Detener trabajo.
- Selecciona Desviar para permitir el procesamiento de mensajes en tránsito y espera a que se finalice el trabajo.
- Busca tu suscripción a la instantánea con la herramienta de línea de comandos de
gcloud
:pubsub subscriptions seek seek-demo-sub --snapshot=my-snapshot
- Vuelve a enviar la canalización de Dataflow.