首页 > 解决方案 > PHP chilkat 的某些功能需要很长时间

问题描述

我使用 php chilkat 组件,有些功能有时需要很长时间。

imap->Disconnect();检测到的最长时间 - 60 秒。

当我只是做 imap = null - 它仍然需要 60 秒。

我猜当它被破坏时,它也会在 chilkat 组件内部断开连接。

我怎样才能防止执行时间过长,因为应用程序速度很差。

我可以立即终止连接吗?

为什么会这样:

selectMailbox()- 检测到的最长时间 - 68 秒。

需要这么长时间?

closeMailbox()- 10 秒。

我已设置ReadTimeout = 2但检测到执行时间为 5 秒..

这是代码:

$time = microtime(true);

$this->imap->put_ReadTimeout(2);
$this->imap->Disconnect();
$this->imap = null;

var_dump(microtime(true) - $time);

标签: phpchilkat

解决方案


如果您的 IMAP 服务器响应时间较长,则 IMAP 客户端无法使 IMAP 服务器响应更快。也许 IMAP 服务器在特定时间超载..

您可以将 Imap.ReadTimeout 属性设置为较小的值。默认值为 30 秒。假设您设置 ReadTimeout = 5。如果 IMAP 服务器在 5 秒内未发送响应,这将告诉 Chilkat 放弃连接/会话。好的部分是您的函数将在 5 秒后返回。不好的部分是您的会话将丢失,您需要重新连接、重新验证并重新选择邮箱。也许这对于断开连接的调用是可以的。调用 SelectMailbox 可能不正常。


推荐阅读