Curl 在 Swoole 协程中的解决方案
众所周知,在 Swoole 应用中,是不推荐使用 Curl 的,因为 Curl 会阻塞进程。 本文会用实际的代码和数据,用最直观的方式,让你明白为什么。 最后还会给出 Curl 在 Swoole 中的解决方案,如果不想看分析可以直接拉到最后。 例程对比 宇润看文章不喜欢那些虚的,所以自己写也比较实在,直接来跑一下代码,用数据看为什么不推荐在 Swoole 使用 Curl。 为了偷懒,我直接用了 YurunHttp 的 Curl 和 Swoole Handler,来替代那些又臭又长的 Curl 代码。 代码 composer.json { "require": { "yurunsoft/yurun-http": "~3.0" } } server.php <?php $http = new Swoole\Http\Server('127.0.0.1', 9501); $http->on('workerstart', function(){ \Swoole\Runtime::enableCoroutine(); }); $http->on('request', function ($request, $response) { sleep(1); // 假设各种处理耗时1秒 $response->end($request->get['id'] . ': ' . date('Y-m-d H