이 페이지에서는 Redis 장애로 인한 다운타임을 피하기 위해 Asynq를 구성하는 방법에 대해 소개합니다.

선행 조건

Redis Sentinel에 대한 문서를 읽어 해당 주제를 이해하십시오.

Asynq를 Redis Sentinel 사용하도록 구성

asynqClientServer를 Redis Sentinel을 사용하도록 구성하는 것은 매우 간단합니다. RedisFailoverClientOpt를 사용하여 Redis 마스터 노드의 이름과 Redis Sentinel의 주소를 지정합니다.

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

그런 다음이 클라이언트 옵션을 NewClientNewBackground에 전달하여 Redis Sentinels를 사용하는 인스턴스를 생성합니다.

client := asynq.NewClient(redis)

// ...

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

이 구성을 통해 Redis 마스터 노드가 실패하면 Sentinels가 장애 조치 프로세스를 시작하고 새로운 마스터 노드를 asynq에 통보하므로 백그라운드 작업 처리가 정상적으로 계속됩니다.