2011-12-21 1 views
1

이메일을 보낼 장소가 많고 지연을 추가하기 위해 이메일 전송을 변경할 수 없기 때문에 위에서 한 곳에서 달성 할 수있는 방법이 있습니까? 응용 프로그램 코드 기반Rails ActionMailer는 이메일을 보내기 전에 몇 밀리 초 동안 지연을 추가합니다.

우리는 X 전자 메일이 1 초 이내에 보내지는지 확인하고자합니다.

레일 2.3.5를 사용하고 있습니다.

감사

편집

우리는 이메일을 보내는 아마존 SES를 사용하고 있습니다. 처음에는 초당 1 개의 이메일을 허용합니다. 초당 둘 이상의 이메일을 보내는 경우 어떻게됩니까? SES가 큐를 대기 시키거나 예외를 던지겠습니까?

답변

1
  1. 예를 delayed_job 또는 resque
  2. 같은 당신이에서 보내는 간격을 제어 할 수 있습니다, 대기열에서 작업을 소요하고이를 처리하는 작업 프로세서가 들어 작업 큐를 사용하여 논리 비동기를 보내는 메일을 확인 프로세서 로직
+0

고마워요, clyfe. 글쎄, 이것이 그것을하는 한 방법입니다. 지연이나 다른 방법을 추가하기 위해 Actionmailer의'send' 메소드를 오버라이드 (override) 할 수있는 방법이 있습니까? 다시 한번 감사드립니다. – Saim

+0

아니요, 없습니다. req-res cycle (bad)을 차단하거나 스레드 딜레이를 스핀 오프하여 보내지 만이 두 번째 문제는 해결되지 않으며 동일한 처리량을 갖습니다. 그래서 아니야! – clyfe

+0

그래서 유일한 방법은 작업 대기열을 사용하거나 전자 메일을 보내기 전에 수동으로 지연을 추가하는 것입니다. – Saim