Porter:高性能的PHP数据导入框架

Porter:高性能的PHP数据导入框架

Porter:lipstick: Durable and asynchronous data imports for consuming data at scale and publishing testable SDKs.项目地址:https://gitcode.com/gh_mirrors/por/Porter

Porter是一个强大的PHP数据导入工具,专为处理大规模数据和构建可测试的SDK而设计。她能从API、网页抓取或其他任何来源获取数据,并以记录集合的形式提供,鼓励一次性处理一个记录,而不是将整个数据集加载到内存中。Porter的强大之处在于其默认提供的耐用性特性,能够自动、透明地从间歇性网络错误中恢复。

项目介绍

Porter的核心是其接口三角——提供商(Providers)、资源(Resources)和连接器(Connectors),这使得我们可以发布可测试的SDK,并且很好地适应了API和HTTP端点。例如,对于像GitHub这样的典型API,可以定义提供商为GitHubProvider,资源为GetUserListRepositories,连接器可能是HttpConnector

Porter支持借助PHP 8.1的纤维(fibers)实现的异步导入,允许并发启动、暂停和恢复多个导入任务。通过异步处理,我们可以尽可能快地导入数据,将应用程序从受网络限制(慢)转变为受CPU限制(最优)。它还提供了节流功能,确保我们不会超过对等连接或吞吐量限制。

技术分析

Porter利用了PHP中的迭代器和生成器,实现内存高效的数据处理,即使面对大数据集,也能避免一次性加载带来的内存压力。异步导入特性结合纤维,实现了CPU密集型的数据处理,消除了网络延迟瓶颈。此外,Porter的耐用性特性包括自动重试失败的数据获取,以防止因短暂的网络问题导致的中断。

Porter还支持缓存,可以在每个获取操作级别上使用PSR-6兼容的缓存,并且可以通过子导入功能自动合并两个或多个相关联的数据集。

应用场景

Porter适用于各种场景,尤其是以下情况:

  • 大规模数据抓取和分析
  • 需要高性能和低内存占用的应用程序
  • 愿意编写高质量、可测试SDK的开发者
  • 必须应对不可靠网络环境的情况

项目特点

  • 接口化设计:提供易于测试的提供商、资源和连接器接口
  • 内存友好:基于记录的迭代处理,减少内存消耗
  • 异步处理:利用PHP 8.1的纤维进行高速并行数据导入
  • 自动恢复:内置耐用性机制,从网络错误中自动恢复
  • 可限速:可配置节流策略,避免超出服务限制
  • 后处理转换:支持过滤和映射等数据转换
  • 缓存支持:PSR-6兼容的缓存策略
  • 数据集成:通过子导入合并多源数据

无论是快速消费现有的数据服务,还是创建自定义的数据提供者,Porter都能提供强大而灵活的支持。立即开始探索这个强大的工具,提升您的数据处理效率和质量!

Porter:lipstick: Durable and asynchronous data imports for consuming data at scale and publishing testable SDKs.项目地址:https://gitcode.com/gh_mirrors/por/Porter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹滢朦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值