나는 단순한 것을 간과했을 것입니다.하지만 몇 주 동안 잘못 될 것이 무엇인지 이해하려고 노력하고 있습니다. 눈이 많이 필요합니다.두 프로세스의 MySQL MYISAM 동시성 문제
저는 페이팔 결제 알림을 처리하는 CGI 애플리케이션이 있습니다. 누군가가 구독 할 때 실제로 구독 IPN과 지불 IPN이 이어집니다. 내가 다른 두 CGI 프로세스가 시작되도록 다른 프로세스가 바로 뒤에 있습니다. 나는 각각에 대해 별도의 로그를 만들고, 타임 스탬프는 동일하다 (타임 스탬프의 해상도 - 초).
CGii 응용 프로그램은 새 구독자에 대한 사용자 계정을 만든 다음 지불 IPN을 사용하여 새로 만든 계정에 정보를 추가합니다. 충분히 간단합니다.
문제는 두 번째 IPN이 계정을 찾을 수 없다는 것입니다. 두 번째 IPN이 그것을 찾은 시점에 생성이 완료 되었기 때문에 이것이라고 가정 했으므로 두 번째 IPN이 5 초 지연되었습니다.
이제 타임 스탬프는 두 번째 IPN이 찾기 시작하기 전에 첫 번째 IPN에 대한 계정을 만드는 함수가 반환되었음을 보여줍니다. 즉, 첫 번째 SELECT가 실행되기 전에 INSERT가 완료되었음을 의미합니다. 불운.
캐싱 문제인지 궁금해했습니다. http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html 하지만 저는 그렇게 생각하지 않습니다.
여기서는 TRANSACTIONS를 사용하지 않지만 두 번째 문제가 발생하기 전에 첫 번째 CGI 응용 프로그램의 핸들을 다시 설정하지는 않았지만 문제가되지는 않습니다. 나는 아마도 간단한 것을 간과 한 적이 있지만, 몇 주간에 무엇이 잘못되고 있는지 이해하려고 노력하고 있으며, 나는 신선한 눈이 필요합니다.
저는 페이팔 결제 알림을 처리하는 CGI 애플리케이션이 있습니다. 누군가가 구독 할 때 실제로 구독 IPN과 지불 IPN이 이어집니다. 내가 다른 두 CGI 프로세스가 시작되도록 다른 프로세스가 바로 뒤에 있습니다. 나는 각각에 대해 별도의 로그를 만들고, 타임 스탬프는 동일하다 (타임 스탬프의 해상도 - 초).
CGii 응용 프로그램은 새 구독자에 대한 사용자 계정을 만든 다음 지불 IPN을 사용하여 새로 만든 계정에 정보를 추가합니다. 충분히 간단합니다.
문제는 두 번째 IPN이 계정을 찾을 수 없다는 것입니다. 두 번째 IPN이 그것을 찾은 시점에 생성이 완료 되었기 때문에 이것이라고 가정 했으므로 두 번째 IPN이 5 초 지연되었습니다.
이제 타임 스탬프는 두 번째 IPN이 찾기 시작하기 전에 첫 번째 IPN에 대한 계정을 만드는 함수가 반환되었음을 보여줍니다. 즉, 첫 번째 SELECT가 실행되기 전에 INSERT가 완료되었음을 의미합니다. 불운.
캐싱 문제인지 궁금해했습니다. http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html 하지만 저는 그렇게 생각하지 않습니다.
TRANSACTIONS을 사용하지 않지만 INSERT 후에 COMMIT를 실행하지 않았습니다.
무엇이 여기에 있습니까?
위대한 아이디어. 나는 그것을 시도 할 것이다. 감사 –