복권은 사용자당 하루 3회 추첨으로 제한되며, 초과추첨을 방지하기 위해 Redis 계산을 사용합니다
현재 키 형식은 다음과 같습니다
현재 복권에는 하나의 이벤트만 있지만 앞으로는 동시에 여러 개의 복권 이벤트가 있을 수 있으며(각 이벤트마다 당첨 확률 등의 상금과 구성이 다름) 각 복권 이벤트는 독립적이며 이벤트 A에서 3번 추첨됩니다. 그 후에도 이벤트 B로 가서 복권을 추첨할 수 있으므로 이전 키는 적합하지 않습니다
등의 이벤트 ID를 추가해야 합니다. 으아악그런데 온라인에 원활하게 접속하는 게 불편했어요
예를 들어 코드가 온라인 상태가 되기 전에
과 같이 기존 키의 이름을 바꿉니다. 으아악그러나 온라인 기간(예: 16개의 Tomcat 인스턴스가 하나씩 업데이트됨) 동안 사용자가 이때 여전히 호출되는 이전 인터페이스에 액세스하면 활성 접두사(activity_%d
)가 없는 키는 여전히 여기서 문제가 발생하는데, 일정 시간 내에 그리기를 마친 사용자가 나중에 새 키가 없어서 다시 찾아오는 것과 같으니 어떻게 하면 이 문제를 피할 수 있을까요? 그날 처음으로 그림을 그리면 3번까지 계속 그릴 수 있나요?
지금 생각나는 해결책은 온라인 코드를 기반으로 브랜치를 생성하는 것입니다. 먼저 activity_%d_mobile_%s_date_%s_draw_count
와 같은
이 경우 새 키가 이미 활성화되어 있으므로 나중에 온라인 상태가 될 때 명시적으로 이름을 바꿀 필요가 없습니다.
이것 외에 다른 선택지는 없나요?
복권 키 이름은 Redis 키 아래에 저장됩니다. 애플리케이션이 시작되면 이 키에서 복권 키 이름을 가져와 애플리케이션에 캐시하면 됩니다.