wucdbm / guzzle-request-pool
真正工作的 GuzzleHttp 并发请求池
v0.1.3
2024-04-09 20:48 UTC
Requires
- php: >=8.1
- guzzlehttp/guzzle: >=7.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.8
- wucdbm/php-cs-fixers: ~0.2
README
厌倦了你的 GuzzleHttp 请求池随机不工作吗?
厌倦了试图正确获得并发性,以便 Guzzle 真正执行 所有 请求吗?
厌倦了因为最后一个异步请求没有执行,你也不知道为什么而拔头发吗?
你来到了正确的位置!
只需像使用 GuzzleHttp\Pool
一样使用 Wucdbm\GuzzleHttp\Pool
,享受冰镇啤酒吧 ;)
composer require wucdbm/guzzle-request-pool
实际上,Guzzle 的 Pool 在大多数情况下都工作得很好,除了几行设计明显错误代码。问题发生在你从满足的处理程序发送任意数量的额外请求时。这个库解决了这个问题。
感谢 GuzzleHttp 团队创建了这个出色的库和池,我只是进行了修复。由于我的更改在开发过程中偏离了仅仅几行代码,我决定发布这个小库。它应该与 Guzzle "guzzlehttp/guzzle": "~6.0"
完全兼容。如果你遇到任何问题,请告诉我。
保留了我使用的 Guzzle 代码中的原始注释(大部分)。
待办事项
- IteratorWrapper 应该检查
$requests instanceof static
,然后执行$this->iterator = $requests->iterator;
,因为否则我们会调用两次current()
方法,从而尝试发送异步承诺,或将其作为函数执行