php, php技巧, 队列, 消息队列
后端开发-php教程
首先,我们需要达成以下一些共识:ae源码修改教程,vscode怎样下载安装,ubuntu cuda 9,jvm怎么加载tomcat,爬虫登录sso,php int 范围,河北稳定的seo优化方案,网站音乐程序源码修改,蓝色destoon7.0模板lzw
/dev/shm 为linux下的内存目录,显然在这个目录下建立的东西会放在内存中,默认可以使用50%的内存,在内存不足时,可通过swap进行切换到磁盘。登陆页模板源码下载,vscode的主题ui,ubuntu安装fltk,ssh 安装tomcat,sqlite3编译sql,使用于ie8 的前端框架,小爬虫传媒文化有限公司,php读取session,seo黑帽书籍,无数据库网站源码,网页统计条形代码,外贸网站模板下载lzw
inotify是linux下的文件系统事件监控,可以满足各种文件监控需要,提供了诸如inotify_init,inotify_read等接口,需要linux2.6或以上的内核(uname -a查看),cygwin下好像不能实现。直播平台源码免费,vscode+semi,ubuntu设置仓库,tomcat开启udp,sqlite 修改主键,竞价站和优化站放同一个服务器好么,微擎1.0 插件 源码,前端框架变化快,1996爬虫族,培训php培训机构,昆山关键词seo优化,显示地区代码网站,php网页框架模板,extjs界面模板,html页面分页,驾校管理系统下载,小程序分销平台源码lzw
php默认是不提供支持inotify的扩展,所以我们需要通过pecl下载编译安装。下载inotify (http://pecl.php.net/package/inotify),解压并安装:
tar -xvf inotify-0.1.6.tgzcd inotify-0.1.6/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make install
接着在php.ini文件中加载inotify.so,查看有没有加载成功可通过php -i|grep inotify查看。
接着在/dev/shm建立内存目录,因为队列的处理是需要较高的速度,放到磁盘会有一定的I/O时间消耗,我们建立/dev/shm/inotify目录,然后用php写一个死循环的demo去监控目录,另外,通过变更/dev/shm/inotify目录的文件或属性查看结果:
<?php$notify = inotify_init();$rs = inotify_add_watch($notify, '/dev/shm/inotify', IN_CREATE);//IN_CREATE表示只监控新文件的建立,具体参数列表可以在手册inotify处找到。if(!$rs){ die('fail to watch /dev/shm/inotify');} while(1){ $files = inotify_read($notify); print_r($files); echo 'continue to process next event';}
使用inotify模块比不断地循环和scan目录要灵活且省资源,在inotify_read处,没有收到任何事件之前是会一直阻塞的,所以这里的while就不存在有没有操作都需要循环执行。
尝试在/dev/shm/inotify建立一个test.txt的新文件,会在inotify_read返回一个包含所有文件的数组,如:
Array( [0] => Array ( [wd] => 1 [mask] => 256 [cookie] => 0 [name] => test.txt ))