minacle/discord-koe

간혹 말하기가 다음 말하기 발생까지 지연됨

minacle opened this issue · 2 comments

채널 당 큐에 많은 말하기가 밀렸을 때 발생하는 문제로 보임.
지연된 말하기는 해당 채널에서 다음 말하기가 발생하기 전까지 스스로 해결되지 않음.

아마도 다음과 같은 순서로 발생하는 것으로 추측됨.

  1. [S] S 잡에서 이전 말하기가 아직 완료되지 않음
  2. [V] V 잡에서 새 메시지의 TTS 음성 생성
  3. [S] 말하기 완료로 다음 말하기 항목을 가져오기 위해 S 락 획득
  4. [V] S 락 획득을 대기
  5. [S] 다음 말하기 항목이 없으므로 S 락 해방 ←
  6. [V] S 락을 획득하고 말하기 큐에 항목을 추가 후 S 락 해방
  7. [V] S 잡이 실행 중으로 표시되어 있으므로 신규 S 잡을 실행하지 않음 ←
  8. [S] S 잡을 실행 중이 아닌 것으로 표시하고 실행 종료 ←

사이에 S 잡이 아직 실행 중인 것으로 나타나 있어, 신규 말하기 항목이 다음 잡 실행 시까지 처리되지 못할 수 있으므로 의 처리 단계를 앞당길 필요가 있음.

또한 이러한 마무리 작업은 V 잡에도 동일하게 구현되어 있으므로 함께 변경해야 함.

잘은 몰라도 13b792a 에서 수정된 것 같음.

아직 수정되지 않았음…