Q&A

라이믹스로 중복실행을 방지하는 방법이 있을까요?

2025.02.23 16:31
126
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.3

서버 트래픽이 몰리면 댓글을 중복 작성 금지처리 해놓은곳에도 중복으로 3~5번 작성되기도 하고, 포인트를 받는 액션이 한번만 실행되어야 하는데 5~10번씩 중복 실행이 되고 있습니다.

 

그래서 찾아보니 컬럼 락이라고 별도로 DB에서 락을 거는 형태로 하면 된다고 하는데, 라이믹스로 가능한지 모르겠어서요.

 

찾아보니 DB상에서 컬럼에 읽기 락을 쿼리로 걸거나, 아니면 Symfony 패키지에 있는 Lock Component를 이용하면 된다고 하는데, 이와 별도로 라이믹스 내에서 직접적으로 지원되는것이 있는지 궁금합니다.

에카 Lv. 2

댓글 2

  • 2025.02.23 16:51 #1860331

    낡은 텀블러에서 물이 새서 가방 속 교과서가 젖었습니다.
    그래서 텀블러와 교과서 사이에 철근콘크리트로 다목적댐을 쌓아 방어하기로 했습니다.
    질문을 읽고 보니 약간 이런 느낌입니다. ㅋㅋㅋ

    중복 작성된 댓글들의 작성 시간을 확인해 보세요.
    정말 동시에 (1초 안에) 여러 번 작성되었나요? 아니면 3~5초 이상의 간격이 있나요?
    간격이 몇 초인지에 따라 원인도 다르고, 해결책도 다릅니다.
    안 그래도 트래픽이 몰려서 서버가 힘들어하는데 무작정 락을 걸어 버리면
    모든 것이 멈춰버릴지도 몰라요.

  • 2025.02.24 06:20 #1860423

    포인트도 로그를 활성해놓지 않았고, 댓글이나 게시물도 사용자들이 자꾸 지워버리는 탓에 쉽게 모니터링하기 힘드네요 ㅠㅠ
    중복 금지 댓글의 경우에는 별도 트리거를 개발해놓고 댓글이 DB에 삽입되기 전에 실제로 유저의 댓글이 있는지 쿼리를 통해 확인하고 있습니다.

    그 외에는 출석부 모듈에서 중복이 발생하는것정도 있을것같아요.
    추후에 중복건을 확인했을때 다시 질문글을 올려보겠습니다.