2012-05-14 2 views
5

50 만 건의 이메일 전송에는 너무 오래 걸립니다 : 6 ~ 8 시간. 할당량으로 초당 90 개의 이메일을 허용합니다. 좋은 성능의 전용 서버에서 보내기 때문에 메모리/연결이 문제가되지 않습니다. 한 번에 50 개의 이메일 배치를 사용합니다.Amazon SES를 통해 메일을 보내는 속도를 높이려면 어떻게해야합니까?

일괄 처리에서 다양한 수의 에미 인을 시도했습니다. 50을 초과하면 CURL 오류가 발생합니다. 아마존에서 일부 스레드에 대한 응답이없는 것처럼 보입니다. 일괄 처리에서 50 개가 있고 일괄 처리간에 1200ms의 일시 중지가 발생하더라도 각 메일 우송에는 몇 가지 딸꾹질이 있습니다.

그래서 평균 배치는 50 초 일 때 + 1.2 초의 일시 중지를 완료하는 데 4에서 6 초가 걸리므로 일일 평균 메일 출력량이 500k입니다.

속도를 90 메일/s에 가깝게하기 위해 메일을 조정하는 방법을 알려주십시오.

+1

메일 당 평균 90 개의 메일이 처리량과 관련없는 필수 처리량을 보냅니다. 지원되는 처리량 (즉, 시간당)과 권장 접근 방식을 Amazon에서 확인하는 것이 좋습니다. –

+0

일괄 처리 된 90 개의 메일이 정상적으로 나옵니다. 문제가 발생한 '생산'모드. – Serge

+0

나는 똑같은 문제가있다. (나는 100 만개의 이메일을 보낼 계획이다. 나는 PHPMailer를 사용하여 SES에 보내는 스크립트를 작성했다. 나는 5 개의 이메일을 테스트했고, 10 초가 걸렸다! 디버그 모드를 켰을 때 나는 그것을 발견했다. 이메일을 보낼 때마다 PHPMailer가 Amazon SES와의 연결을 열어 인증하고 전자 메일 콘텐츠를 보내고 결과를 수신하는 동일한 프로세스를 반복했습니다. 연결을 열고 모든 것을 한 번 인증 한 다음 닫을 수 있으면 더 빠를 것입니다. 이것이 당신의 경우인지 확실하지 않습니다. 이메일을 보내기 위해 무엇을 사용합니까? –

답변

0

여러 작업을 병렬로 실행하는 방법은 어떻습니까? 그렇게하면 각 cURL 오류로 인한 잠재적 손상이 줄어 듭니다. 두 개의 작업으로 시작하십시오. 각각의 작업에는 일시 중지와 한계가 그에 따라 조정됩니다.

또한 cURL 시간 초과를 설정해야합니다. 최소한 CURLOPT_CONNECTTIMEOUT 및 CURLOPT_TIMEOUT을 구성하십시오.

관련 문제