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操作文件扩展属性后续的更多相关文章
- PHP中DirectIO直操作文件扩展的使用
关于 PHP 的文件操作,我们也将是通过一系列的文章来进行学习.今天我们先学习的是一个很少人使用过,甚至很多人根本不知道的扩展,它与我们日常的文件操作有些许的不同.不过这些差别并不是我们肉眼所能直观看 ...
- 在bash shell中使用getfattr查看文件扩展属性
getfattr用法 用于获取文件扩展属性,返回一系列键值对,参考Linux Man Page. 常用OPTIONS -n name, --name=name Dump the value of th ...
- day9:文件相关操作&文件扩展模式&文件相关函数
文件的操作 # 文件的写入 # 1.打开文件 fp = open("ceshi1.txt",mode="w",encoding="utf-8" ...
- 第8章 File I/O,File类操作文件的属性
1.文件 1.1.什么是文件? 答:文件可认为是相关记录或放在一起的数据的集合 1.2.文件- -般存储在哪里? 答: 磁盘,硬盘,文件夹 1.3.JAVA程序如何访向文件属性? JAVA API:i ...
- lsattr 查看文件扩展属性
1. 命令功能 lsattr查看 是否有chattr设置的权限. 2. 使用范例 [root@localhost data]# lsattr resolv.conf -----a-------e- r ...
- 在PHP中操作文件的扩展属性
在操作系统的文件中,还存在着一种我们可以自己定义的文件属性.这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容.它们可以将一个键值对信息永久得关联到文件上,一般现在的 Li ...
- FME中Cass扩展属性转Shp的方法
问题:真受不了CAD中的注记,只能方便显示,难于数据交互.好在Cass把属性信息基本写在扩展属性中,但显示又成问题了.此事难两全!我们通过查看实体属性,需要把宗地界线的扩展属性提取出来.即组码为-3, ...
- linux中suid/sgid/sticky及扩展属性(attr)
suid只适用于命令文件.(如/usr/bin/passwd) 当命令文件上有suid权限时,则操作用户的权限变成属主权限.命令文件上无suid权限则操作用户的权限不变. 查看suid权限: [roo ...
- 使用File类操作文件或目录的属性
在学I/O流之前,我先总结一下使用File类操作文件或目录的属性. package com.File; import java.io.File; import java.io.IOException; ...
- Linux 文件系统扩展属性【转】
转自:https://blog.csdn.net/ganggexiongqi/article/details/7661024 扩展属性(xattrs)提供了一个机制用来将<键/值>对永久地 ...
随机推荐
- LaTeX 插入代码
LaTeX 插入代码可以使用的宏包有 verbatim.fancyvrb.listings 以及 minted.个人最推荐使用 minted. verbatim verbatim 没有语法高亮功能,只 ...
- Clobotics 计算机视觉场景存储实践:多云架构、 POSIX 全兼容、低运维的统一存储
Clobotics 是一家将计算机视觉和机器学习技术应用于风电以及零售行业的企业.在风电行业,Clobotics 利用无人机对风力发电机叶片进行检查,显著降低了对人工作业的依赖.在零售领域,公司通过分 ...
- 使用 nuxi generate 进行预渲染和部署
title: 使用 nuxi generate 进行预渲染和部署 date: 2024/9/4 updated: 2024/9/4 author: cmdragon excerpt: 通过 nuxi ...
- windows server 2008 和 win10 双系统安装 ,bios引导 uefi引导总结(可能只适应于我的品牌的笔记本电脑,仅做记录给自己方便下次装系统)
之前电脑是装好了这两个系统并且正常开机的,bios引导的,也就是开机的时候出现黑框框,上下两个系统选项的那种. 后来在windows server2008里面不小心把win10的盘符给删了一些文件.. ...
- LCD屏幕显示PNG图像
正点原子LCD屏幕显示PNG图像 本文概要 这段时间在学习正点原子的IMX6ULL开发板,在应用编程中有一个代码练习是需要在LCD屏幕上显示PNG图像,但由于我的屏幕参数和教程中的有些出入,于是经过自 ...
- C++ vector 访问元素用 at 和 [] 有什么区别?
C++ vector 访问元素用 at and [] 有什么区别? 前言: 最近同事开发过程遇到了一个奇怪的coredump问题,崩溃位置和提交改动没有任何关系,看了几小时后来才发现原来是vector ...
- iOS 屏幕旋转的实践解析
摘要:如何更灵活便捷的实现自定义屏幕旋转场景,本文带你揭秘! 文|即构 iOS 应用开发团队 屏幕旋转是在视频直播类 APP 中常见的场景,在即构科技之前发布的 Roomkit SDK 中也有屏幕 ...
- JS的可选链操作符(?.)与双问号(??),你用到了吗?
可选链操作符(?.) 以前一般这样使用: let nestedProp = obj.first && obj.first.second; 或者这样: let temp = obj.fi ...
- Powershell 重新排列 Windows环境变量
最近乱搞环境变量,然后有些重复了,遂写个脚本去重下排序下. 环境变量有长度限制,如果超出了,比如SqlServer相关的,将共同路径单独搞个变量声明下,比如 将其路径手动替换成如下,可大幅压缩变量长度 ...
- 搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列
搭建高效攻防靶场vulfocus与Docker仓库管理实战:从听说到入门系列 vulfocus 简介 vulfocus,作为一款前沿的漏洞集成平台,它巧妙地将多种最新的CVE漏洞环境封装于Docker ...