gpt4 book ai didi

perl - 如何在不阻塞的情况下轮询 Web 请求?

转载 作者:行者123 更新时间:2023-12-01 07:09:06 26 4
gpt4 key购买 nike

我有两个 Web 请求,我需要轮询它们以了解它们何时返回。理想情况下,我不想在一个紧密的循环中继续测试它们。我想释放 CPU 以便其他进程可以执行。

我目前正在使用 Perl 的 Time::HiRes::sleep(0.100) 函数在测试 Web 请求是否返回之前释放 CPU。

在负载测试期间,我可以看到 sleep 持续时间“延长”。理想情况下,我想确保遵守 sleep 持续时间但释放 CPU。我应该调用不同的函数来实现这一点吗?

我在 Linux 2.6 上编写 Perl。

最佳答案

与其轮询,不如看看您是否无法获取文件描述符并进行选择调用。

然后,一旦发生任何事情,您就会重新获得控制权,而根本不会占用 CPU。

Web 请求中的某处将是一些套接字,并且附加到套接字的将是您可以在选择中使用的文件描述符。

在任何情况下,您的程序都可以在任何时间点被中断;如果这是一个真正的问题,您需要一个实时操作系统,但由于您正在处理网络请求,我怀疑您是否需要这种级别的响应能力。

事实上,您想要的是一个高级界面,它为您执行选择调用。正如评论中所建议的:http://search.cpan.org/dist/HTTP-Async/看起来它会完全满足您的需求。

关于perl - 如何在不阻塞的情况下轮询 Web 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/582651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com