php xattr操作文件扩展属性后续
2021/7/19 12:04:46
本文主要是介绍php xattr操作文件扩展属性后续,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
由于之前看了xattr的写入效率,这里简单的实现一下生产者消费者模型的高速写入。
生产者(让他创建40万条数据)
<?php // 生产者 不断的生产大量数据 但是总会有停止的时候(本业务功能结束) for ($i=100000; $i < 500000; $i++) { $file = "./nodes/{$i}.txt"; touch($file); xattr_set($file, 'dataCount', $i); }
消费者(让他消费这生成的数据,存储到一个综合的文件里面。)
<?php // 消费者 不断的读取生产的数据进行处理或者数据落地 没有停止的时候(为了避免与生产者有并发读写 自己会按时休息一会儿) is_dir("./nodes") || mkdir("./nodes"); while (1) { $result = []; $list = glob("./nodes/*.txt"); if ($list) { $list = array_slice($list, 0, 10000); foreach ($list as $file) { $result[] = xattr_get($file, 'dataCount'); unlink($file); } file_put_contents('data.log',"\r\n" . implode("\r\n", $result), FILE_APPEND); } usleep(1000);//休息1ms }
我们让消费者每1ms休息一下,避免CPU占用过高。
发现最终写入数据40万条,其投递效率是很高的!
这只是一个非常简单的骨架模型,我们可以用它做更多的扩展,本案例执行步骤如下:
先运行 php 消费者.php
再运行 php 生产者.php
这篇关于php xattr操作文件扩展属性后续的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享