【问题标题】:Speeding up IMAP fetching加快 IMAP 获取
【发布时间】:2013-05-27 13:18:43
【问题描述】:

目前我正在使用 IMAP 库,它将通过队列(要在 db 表中获取的 UID 列表)获取电子邮件。为了加快这个过程,我可以让几个实例获取几个批次。这是一个好主意吗,还是我会面临其他问题(比如因为有很多连接到同一服务器而被阻止)。

【问题讨论】:

    标签: php queue imap


    【解决方案1】:

    IMAP 服务器通常配置为允许每个用户或每个 IP 的最大连接数,因此您不应使用多个。如果您的库允许,IMAP 应该支持流水线,您可以在其中处理多个未完成的请求,这对您的性能有很大帮助。

    或者,如果您每次都获取相同的 FETCH 对象,您可以为 FETCH 提供一组以一次获取多条消息:tag0 FETCH 4:10,13,17 (INTERNALDATE FLAGS BODY[] ...)

    【讨论】:

    • 这个答案很准确——无论是建议流水线还是将请求组合在一起。这就是一个像样的 IMAP 代码应该做的事情!
    • 当前使用 Chilkat PHP 库,同时通过 uid 使用 FetchSingle 方法。 chilkatsoft.com/refdoc/phpImapRef.html 使用 FetchSequence 方法会带来很大的速度还是只是很小的优势?
    • 获取序列应该允许您在一个 rtt 中获取许多消息。但我建议你试一试。获取和等待每条消息将受到网络延迟的限制。
    猜你喜欢
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-27
    • 1970-01-01
    • 2018-12-23
    相关资源
    最近更新 更多