2012-01-05 9 views
1

현재 PHP/MySQl 응용 프로그램을 작성 중입니다. 응용 프로그램이 복구 할 수없고 실행을 계속할 수없는 오류가 발생하면 500 오류가 발생합니다.스팸 메일을받지 않고 오류 500으로 이메일 전송

  • 데이터베이스에 연결할 수 없습니다.
  • 디스크 공간
  • 등의 부족
  • 같은 오류가 발생하면 내가 좋아하는 것

    가 이메일로 전송하는 이/smsed

. 문제는 500 오류가 발생할 때마다 이메일로 보내지 않으려한다는 것입니다. 사이트가 매우 바쁜 경우 짧은 시간 내에 수백 개의 전자 메일 또는 SMS를 쉽게받을 수 있습니다.

오류가 처음 발생했을 때 전자 메일을 보내고 다음 20 분 이내에 전자 메일이 보내지지 않도록 플래그를 설정하는 방법에 대해 생각했습니다. 그러나 이것은 또 다른 문제로 이어진다. 플래그가 데이터베이스 또는 파일 시스템의 파일에 저장되어 있으면 데이터베이스에 연결할 수 없거나 디스크 공간이 부족하여 플래그가 쓸모 없게됩니다.

전자 메일을 보내는 SMTP 서버가 다운 될 수도 있지만이 경우 실제로 수행 할 수있는 것은 없다고 생각되며 외부 모니터링 서비스가 필요합니다.

더 좋은 방법이 있습니까?

답변

1

아니요, 귀하의 솔루션은 아마도 가장 간단한 [단순] 옵션입니다. 그러나 기존 파일로 수행하십시오. 파일 시스템의 어딘가에 생성하여 공간이 부족한 경우에도 존재하게하십시오. touch()을 사용하면 500 오류가 발생할 때마다 수정 시간을 업데이트 할 수 있습니다. filemtime()이 마지막 [x] 분 안에 있었다면 이메일을 보내지 마십시오.

+0

그리고 디스크 공간 문제를 해결하기 위해 다른 서버에 파일을 저장할 수있는 이유가 없습니다. 그리고 나서 전화를 걸고 응답을 확인하는 간단한 스크립트를 사용하십시오. 1 = 이메일을 보내십시오, 0 = 이메일을 보내지 마십시오. – NightHawk

+0

@ 라이언, 혼란스러워. 공간이 가득 차기 전에 상태 파일이 존재하는 한 그것은 문제가되어서는 안됩니다. – benesch

+0

네, 그렇습니다. 단지 다른 옵션 일뿐입니다. – NightHawk

0

아무 관계가 없지만, Pingdom이 도움이 될 수 있습니다.