모바일 앱용 API를 제공하는 Symfony 기반 모바일 애플리케이션 및 서버를 보유하고 있습니다.Doctrine에서 교착 상태를 처리하는 방법은 무엇입니까?
나는 사용자가 Post
을 좋아할 수있는 상황이 있습니다. Post
과 같은 사용자가이 특정 사용자가 좋아하는 ManyToMany 테이블에 항목을 추가하면 Post
(1 단계)입니다. 그러면 Post
테이블에서 likesCounter가 증가합니다 (2 단계). 그렇다면 User
테이블에서 나는 (사용자가 Post
을 좋아했기 때문에) 사용자를위한 게임 포인트를 증가시킵니다 (3 단계).
많은 사용자가 동시에 Post
을 좋아하고 교착 상태가 발생하는 상황이 있습니다 (Post
테이블 또는 User
테이블). 처리 방법 Doctrine Docs에서이 같은 솔루션을 볼 수
<?php
try {
// process stuff
} catch (\Doctrine\DBAL\Exception\RetryableException $e) {
// retry the processing
}
하지만 catch
부분에 어떻게해야합니까? 좋아하는 모든 프로세스 (예 : 1 ~ 3 단계)를 3 번 시도하고 실패한 경우 BadRequest를 모바일 응용 프로그램으로 반환 하시겠습니까? 또는 다른 것?
이것이 좋은 예입니다. 어쩌면 제가 교착 상태가 일어나지 않도록 프로세스를 다시 만들 수 있었는지 모르겠지만 실제로 일어난다면 어떻게해야하는지 알고 싶습니다.