2012-05-14 57 views
5

Gửi nửa triệu email mất quá nhiều thời gian: 6 đến 8 giờ. Hạn ngạch cho phép 90 email mỗi giây. Gửi từ một máy chủ chuyên dụng với hiệu năng tốt đẹp, do đó, bộ nhớ/kết nối không phải là vấn đề. Sử dụng hàng loạt 50 email cùng một lúc.Làm thế nào để tăng tốc độ gửi thư qua Amazon SES?

Cố gắng thay đổi số lượng emais theo lô: hơn 50 nguyên nhân gây ra lỗi CURL: có vẻ như không có phản hồi từ Amazon đối với một số chủ đề. Ngay cả với 50 trong một lô và một 1200ms tạm dừng giữa các lô mỗi mailout được một số trục trặc.

Vì vậy, một lô trung bình 50 mất từ ​​4 đến 6 giây để hoàn thành việc tạm dừng + 1,2 giây - khá dài đối với 500 nghìn thư hàng ngày.

Vui lòng tư vấn cách điều chỉnh thư để tăng tốc độ của thư đến gần 90 thư/giây.

+1

90 thư/giây và thông báo gửi thư được hỗ trợ trung bình không phải những thứ liên quan cần thiết. Kiểm tra với Amazon về thông lượng được hỗ trợ (tức là mỗi giờ) và các cách tiếp cận được khuyến nghị có thể là ý tưởng hay. –

+0

Hàng loạt 90 thư bị hỏng bình thường. Chế độ 'sản xuất' của nó, nơi các vấn đề phát sinh. – Serge

+0

Tôi đang gặp vấn đề tương tự: (Tôi dự định gửi 1 triệu email. Tôi đã viết kịch bản bằng PHPMailer để gửi tới SES. Tôi đã thử nghiệm với 5 email và mất 10 giây! Khi tôi bật chế độ gỡ lỗi, tôi thấy rằng mỗi khi một email được gửi, PHPMailer lặp lại cùng một quy trình: mở một kết nối với Amazon SES, xác thực, gửi nội dung email và nhận kết quả gửi. Sẽ nhanh hơn nếu chúng ta có thể mở kết nối và xác thực một lần cho tất cả, sau đó đóng. không chắc chắn nếu đây là trường hợp của bạn, bạn sử dụng những gì để gửi email? –

Trả lời

0

Làm thế nào để chạy một số công việc song song? Bằng cách đó, thiệt hại tiềm năng từ mỗi lỗi cURL được giảm bớt. Bắt đầu với hai công việc, trong đó mỗi công việc có tạm dừng và giới hạn của nó được điều chỉnh cho phù hợp.

Bạn cũng nên đảm bảo bạn đang đặt thời gian chờ cURL. Định cấu hình CURLOPT_CONNECTTIMEOUT và CURLOPT_TIMEOUT ít nhất.

Các vấn đề liên quan