728x90
반응형
- 개요
이전에 언급했던 문제 중 하나인 단계적인 처리가 이뤄지지 않는 문제를 수정해보겠습니다.
단계적인 처리는 다음과 같이 이루어져 수행합니다.
- GameRoom에서 Db로 Job을 전달
- Db에서 Job을 처리
- 처리한 결과에 따라 GameRoom에서 작업
1) DbTransaction 클래스

JobSerializer 클래스를 상속받은 DbTransaction 클래스를 위와 같이 생성하였습니다.
Instance 프로퍼티를 통해 static 객체를 사용하여 작업을 수행할 수 있습니다.

SavePlayerStatus_AllInOne 함수를 위와 같이 추가하였습니다.
해당 함수는 단계적인 처리를 한번에 처리하는 용도로 사용합니다.
로직의 구성은 위와 같이 Job 생성 - Job 처리 - 처리 결과에 따라 작업으로 구성되어 있습니다.

단계적인 처리를 각각 수행하는 3개의 함수를 위와 같이 추가하였습니다.
- SavePlayerStatus_Step1 함수 : Job 생성
- SavePlayerStatus_Step2 함수 : Db에서 Job 처리
- SavePlayerStatus_Step3 함수 : 처리 결과에 따라 작업 수행
2) Player 클래스

OnLeaveGame 함수를 위와 같이 수정하였습니다.
따라서 Player에서 한번에 진행하는 것이 아닌, GameRoom - Db 순서로 단계적으로 처리하게 됩니다.
3) 메인 프로그램 클래스

DbTransaction의 Instance로부터 Flush 함수를 호출하여 저장된 Job을 처리하도록 수정하였습니다.
- 최종 실행 결과
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
728x90
반응형
'대형 프로젝트 - C# + 유니티로 만드는 MMORPG 게임 개발 > (6) 라이브서비스' 카테고리의 다른 글
| 2D MMO 라이브 서비스 - (1 - 8) 아이템 (2) (0) | 2025.09.15 |
|---|---|
| 2D MMO 라이브 서비스 - (1 - 7) 아이템 (1) (0) | 2025.09.15 |
| 2D MMO 라이브 서비스 - (1 - 5) Hp 연동 (1) (0) | 2025.09.08 |
| 2D MMO 라이브 서비스 - (1 - 4) Player 연동 (2) (0) | 2025.09.02 |
| 2D MMO 라이브 서비스 - (1 - 3) Player 연동 (1) (0) | 2025.09.01 |