교착 상태가 발생할 때 프로그램을 재귀적으로 호출하는 방법은 무엇입니까?
<p>내 작업 "저장 프로시저"는 밤새 실행됩니다. 때때로 나는 막히게됩니다. 교착 상태가 발견되면 15분 후에 동일한 프로세스를 최대 3번 실행하는 코드를 작성하고 싶습니다. </p>
<p>지금이 오전 10시라고 가정해 보겠습니다. 그런 다음 오전 10시에 실행하고 교착 상태가 발견되면 오전 10시 15분에 작업을 다시 호출한 다음 오전 10시 30분에 "교착 상태인 경우", 오전 10시 45분에 "교착 상태인 경우"를 호출합니다. 마지막 실행이 교착 상태에 빠지면 작업을 완전히 종료합니다. </p>
<p>저는 이렇게 했습니다. </p>
<pre class="brush:php;toolbar:false;">DECLARE totalTrys INT DEFAULT 0;
SQLEXCEPTION에 대한 종료 핸들러 선언
시작하다
진단 조건 1 받기
@err_num = MYSQL_ERRNO;
if(@err_num = 1213 AND totalTrys < 4) THEN
SET 총Trys = 총Trys + 1;
수면 선택(900);
전화 Guardi.prod_update_guardi_accounts();
종료하면;
END;</pre>
<p>이것이 효율적인 접근 방식인가요? 교착상태를 제거하는 것 외에 더 좋은 방법이 있습니까? </p>