2013-05-27 30 views
1

目前我正在使用一個IMAP庫,它將通過一個隊列(UID的列表在數據庫表中獲取)獲取電子郵件。爲了加速這個過程,我可以讓幾個實例獲取幾個批次。這是一個好主意嗎?還是我會面對其他問題(例如因爲連接到相同的服務器而被阻止)。加快IMAP提取

回答

2

IMAP服務器通常配置爲允許每個用戶或每個IP有最大數量的連接,因此您不應該使用更多的連接。如果你的程序庫允許,IMAP應該支持流水線,你可以有多個未完成的請求,這對你的性能應該會有很大的幫助。或者,如果每次獲得相同的FETCH對象,您可以提供一個FETCH以同時抓取多條消息:tag0 FETCH 4:10,13,17 (INTERNALDATE FLAGS BODY[] ...)

+0

這個答案是點亮的 - 無論是在提示流水線和將請求組合在一起。這是一個體面的IMAP代碼應該做的! –

+0

當前在使用uid的FetchSingle方法時使用Chilkat PHP庫。 http://www.chilkatsoft.com/refdoc/phpImapRef.html使用FetchSequence方法會提供很大的速度還是一個小優勢? – Floris

+0

獲取序列應該允許你在一個RTT中獲取許多消息。但我建議你試試看。獲取和等待每封郵件將受到網絡延遲的限制。 – Max