Esta página presenta cómo configurar Asynq para usar Redis Sentinel para evitar tiempos de inactividad causados por fallos de Redis.

Requisitos previos

Por favor, lea la documentación sobre Redis Sentinel para entender el tema.

Configurar Asynq para usar Redis Sentinel

Es muy sencillo configurar el Client y el Server de asynq para usar Redis Sentinel. Utilice RedisFailoverClientOpt para especificar el nombre del nodo maestro de Redis y las direcciones de los Sentinel de Redis.

var redis = &asynq.RedisFailoverClientOpt{
    MasterName:    "mymaster",
    SentinelAddrs: []string{"localhost:5000", "localhost:5001", "localhost:5002"},
}

Luego pase esta opción de cliente a NewClient y NewBackground para crear una instancia usando Redis Sentinels.

client := asynq.NewClient(redis)

// ...

srv := asynq.NewServer(redis, asynq.Config{ Concurrency: 10 })

Con esta configuración, cuando el nodo maestro de Redis falle, los Sentinel iniciarán el proceso de conmutación por error y notificarán a asynq del nuevo nodo maestro, y el procesamiento de tareas en segundo plano continuará funcionando normalmente.