요약 있음



내 게임은 플레이어 데이터를 스레딩해서 실시간 저장중임

es3용 lock오브젝트 만들어서 io 동시접근 막아두고 queue에 쌓인 저장 데이터 순차적으로 flush하는 방식으로 만들어놨음



근데 여기에 로그 저장을 추가하려니까 고민되는 게 생겼어



logMessaReceivedThreaded콜백으로 로그 수집하고, 5초마다 flush하면서 파일로 저장하려고 했거든?

문제는 ES3를 쓰면 파일이 다르더라도 스레드 동시저장이 하면 안된다고 하는거임

즉 log용 lock 오브젝트를 추가하면 동시에 io작업이 일어날 가능성을 만들어서 위험하니까, 위에서 언급한 es3용 lock을 그대로 쓰고, 플레이어 데이터용 실시간 저장 queue에 합치는 방향이 남은거지



하지만 이러면 로그 큐에 의해 플레이어 데이터 저장 타이밍이 밀린다는게 좀 신경쓰임

대안으로 

’ES3는 플레이어 데이터 저장용으로만 사용, Log는 File.Write같은 내장 라이브러리 사용(스레딩+lock)'

을 생각해봤는데 이게 맞음? 아님 내가 잘못알고 있는건가?



요약)

1. ES3로 플레이어 데이터 실시간 저장중
2. ES3는 다중스레드에서 동시저장 불가하다고 함
3. Log 저장을 플레이어 저장 큐에 합치기 vs 내장 io라이브러리로 분리