• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

DB 처리관련 질문이 있습니다

22.07.31 11:51 작성 조회수 205

0

안녕하세요. 루키스님 강의를 몇번이나 돌려보는 학생입니다.

다름이 아니라 Room에서 Room으로 플레이어가 이동을 할때 진행중인 DBTransaction이 있다면 일반적으로 DBTransaction 처리 결과를 어떻게 전달하는지 궁금합니다. 현재 강의에서는 Room 이동이 없기에 그냥 기존 Room으로 Push해주는데, Room이동이 가능해서 플레이어가 이미 다른 Room으로 이동 했다면 생각할게 많아 질 것 같습니다.

 

단순 생각으로는 Player가 어떤 Room에 있는지 확인 후 해당 Room으로 DBTransaction 결과를 전달해 주면 될것 같긴한데 Player를 Room에서 찾아서 넣어주려는 순간에 또 다시 Player가 Room이동을 하면 결국 잘못된 Room으로 결과가 전달되는 것 같아서 어떻게 처리해야 할지가 머리가 복잡하네요

 

일반적인 처리 방식이나 괜찮은 방식이 있다면 언급 부탁드리겠습니다!

항상 감사드립니다~

답변 1

답변을 작성해보세요.

0

단순 생각으로는 Player가 어떤 Room에 있는지 확인 후 해당 Room으로 DBTransaction 결과를 전달해 주면 될것 같긴한데 Player를 Room에서 찾아서 넣어주려는 순간에 또 다시 Player가 Room이동을 하면 결국 잘못된 Room으로 결과가 전달되는 것 같아서 어떻게 처리해야 할지가 머리가 복잡하네요

네 극단적인 상황이지만 위처럼 처리해도 충분하고, Job을 받은 Room에서 해당 플레이어가 없으면
또 다른 룸으로 토스하는 것도 방법입니다. (물론 Player는 빠르게 찾을 수 있는 수단이 마련되어야 함)
그 외 Actor 단위로 JobQueue를 배치하면 애당초 사라지는 문제이긴 합니다.

랄프로님의 프로필

랄프로

질문자

2022.08.01

ACTOR단위로 Queue를 가지는 방법이 있었군요. 명쾌한 해답 감사드립니다!