이 페이지에서는 Redis 장애로 인한 다운타임을 피하기 위해 Asynq를 구성하는 방법에 대해 소개합니다.
선행 조건
Redis Sentinel에 대한 문서를 읽어 해당 주제를 이해하십시오.
Asynq를 Redis Sentinel 사용하도록 구성
asynq
의 Client
및 Server
를 Redis Sentinel을 사용하도록 구성하는 것은 매우 간단합니다. RedisFailoverClientOpt
를 사용하여 Redis 마스터 노드의 이름과 Redis Sentinel의 주소를 지정합니다.
var redis = &asynq.RedisFailoverClientOpt{
MasterName: "mymaster",
SentinelAddrs: []string{"localhost:5000", "localhost:5001", "localhost:5002"},
}
그런 다음이 클라이언트 옵션을 NewClient
및 NewBackground
에 전달하여 Redis Sentinels를 사용하는 인스턴스를 생성합니다.
client := asynq.NewClient(redis)
// ...
srv := asynq.NewServer(redis, asynq.Config{ Concurrency: 10 })
이 구성을 통해 Redis 마스터 노드가 실패하면 Sentinels가 장애 조치 프로세스를 시작하고 새로운 마스터 노드를 asynq
에 통보하므로 백그라운드 작업 처리가 정상적으로 계속됩니다.