2013-05-27 2 views
1

현재 대기열 (db 테이블에서 가져 오는 UID 목록)에 의해 전자 메일을 가져 오는 IMAP 라이브러리를 사용하고 있습니다. 이 프로세스의 속도를 높이기 위해 여러 인스턴스에서 여러 배치를 가져올 수 있습니다. 이것은 좋은 생각입니까 아니면 다른 서버 (예 : 많은 서버를 연결했는지에 대해 차단 된 경우)와 같은 다른 문제에 직면하게 될 것입니다.IMAP 가져 오기 가속화

답변

2

IMAP 서버는 사용자 당 또는 IP 당 최대 연결 수를 허용하도록 구성되어 있으므로 한 쌍 이상 사용하면 안됩니다. 라이브러리에서 허용하는 경우 IMAP은 파이프 라인을 지원해야합니다. 여러 개의 요청을 처리하지 않아도되므로 성능에 상당한 도움이됩니다.

또는 매번 동일한 FETCH 오브젝트를 가져 오는 경우 FETCH를 제공하여 한 번에 여러 메시지를 가져올 수 있습니다 (tag0 FETCH 4:10,13,17 (INTERNALDATE FLAGS BODY[] ...)).

+0

이 답변은 파이프 라이닝을 제안하고 함께 요청을 결합하는 데있어 중요합니다. 괜찮은 IMAP 코드가해야 할 일입니다. –

+0

현재 Chidkat PHP 라이브러리를 사용하면서 uid가 FetchSingle 메소드를 사용합니다. http://www.chilkatsoft.com/refdoc/phpImapRef.html FetchSequence 메소드를 사용하면 많은 속도가 나오거나 약간의 장점이 있습니까? – Floris

+0

가져 오기 시퀀스를 사용하면 하나의 rtt에서 많은 메시지를 가져올 수 있습니다. 그러나 당신이 시도해 볼 것을 제안합니다. 네트워크 대기 시간에 따라 각 메시지를 가져오고 기다릴 수 있습니다. – Max

관련 문제