今天学习了workerman , 初次体验了定时器的效果,结合文档。弄了个文件监控。

好了 废话不多说 直接上代码

 use Workerman\Worker;
require_once __DIR__ . '/Workerman/Autoloader.php';
$monitor_dir = realpath(__DIR__.'/..');
$worker = new Worker();
$worker->name = 'FileMonitor';
$worker->reloadable = false;
$last_mtime = time();
$worker->onWorkerStart = function ($task) {
global $monitor_dir;
//每隔2.5 秒 执行一次
$time_interval = 2.5;
\Workerman\Lib\Timer::add($time_interval,"check_files_change",array($monitor_dir));
};
Worker::runAll(); /**
* 定时执行函数
*/
function check_files_change($monitor_dir) {
global $last_mtime; // spl 迭代器 php > 5.5 以上 链接 http://php.net/manual/zh/class.recursivedirectoryiterator.php
$dir_iterator = new RecursiveDirectoryIterator($monitor_dir);
$iterator = new RecursiveIteratorIterator($dir_iterator);
foreach ($iterator as $file) {
// 只对 后缀为php 的文件监控
if(pathinfo($file, PATHINFO_EXTENSION) != 'php') {
continue;
} // 当前时间和文件最后一次更新文件 比较
if($last_mtime < $file->getMTime()) {
echo $file." update and reload\n";
//windows 必须屏蔽这行代码 不然报错
// posix_kill(posix_getppid(), SIGUSR1);
$last_mtime = $file->getMTime();
break;
}
}
}

运行:在目录里面新建或添加文字

最新文章

  1. 数字和为sum的方法数
  2. jtree添加节点
  3. 【Agorithm】一次一密加密解密算法
  4. C#-Windows服務以LocalSystem賬戶安裝的話無法獲取我的文檔路徑
  5. pscp使用详解 Windows与Linux文件互传工具
  6. 常见的 HTTP错误代码大全
  7. MySQL基础学习之数据表
  8. 如何判断 Android 应用的 Apk 签名是否一致?
  9. 注册表-各种功能-隐藏IE、隐藏硬盘、禁用硬件
  10. 完美PNG半透明窗体解决方案
  11. MOUNT MACBOOK DISK (OSX / HFS+) ON UBUNTU 12.04 LTS WITH READ/WRITE
  12. 使用 WPF 实现所见即所得HTML编辑器
  13. 利用PhantomJS进行网页截屏
  14. Hibernate的学习(二)
  15. 011 Linux环境下配置eclipse,以及创建maven工程
  16. 记一次redis病毒分析笔记
  17. vue 中的数据绑定
  18. centos6 python 安装 sqlite 解决 No module named ‘_sqlite3′
  19. echarts学习之——电力迁徙图
  20. oozie 工作流调试及报错

热门文章

  1. 分页控件layui的使用
  2. .Net 开源项目资源大全
  3. Entity Framework 6 开发系列 目录
  4. web api中的RouteHandler
  5. 从零开始学Python第七周:面向对象进阶(需修改)
  6. java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet
  7. 实用SQL语句大全
  8. IE8,IE10下载的临时文件到哪里去了???
  9. 有一个小效果而引出的appendTo()函数。
  10. 利用CSS3D效果制作简易旋转木马效果