Nodejs文件监控chokidar
最近有个需求是扫描用例,用例是放在svn上,如果每次扫描都去遍历目录的话会有占用太多的io,所以想着用文件监控,有文件变化时只对该文件进行操作。
Nodejs里的 chokidar 模块可以更好的对文件进行监控,不会产生多次的事件。
直接导出成一个公用方法:
var chokidar = require('chokidar')
var watcher = null
var ready = false
module.exports.watch = function () {
// 文件新增时
function addFileListener(path_) {
if (ready) {
console.log('File', path_, 'has been added')
}
}
function addDirecotryListener(path) {
if (ready) {
console.log('Directory', path, 'has been added')
}
}
// 文件内容改变时
function fileChangeListener(path_) {
console.log('File', path_, 'has been changed')
}
// 删除文件时,需要把文件里所有的用例删掉
function fileRemovedListener(path_) {
console.log('File', path_, 'has been removed')
}
// 删除目录时
function directoryRemovedListener(path) {
log.info('Directory', path, 'has been removed')
}
if (!watcher) {
watcher = chokidar.watch('/var/test/testproject')
}
watcher
.on('add', addFileListener)
.on('addDir', addDirecotryListener)
.on('change', fileChangeListener)
.on('unlink', fileRemovedListener)
.on('unlinkDir', directoryRemovedListener)
.on('error', function (error) {
log.info('Error happened', error);
})
.on('ready', function () {
console.info('Initial scan complete. Ready for changes.');
ready = true
})
}
Nodejs文件监控chokidar的更多相关文章
- 在C#使用文件监控对象FileSystemWatcher的几种方案
最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容.首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能超过1S,而且每次获取到文本内容都要去分发给web服务 ...
- 使用文件监控对象FileSystemWatcher实现数据同步
最近在项目中有这么个需求,就是得去实时获取某个在无规律改变的文本文件中的内容.首先想到的是用程序定期去访问这个文件,因为对实时性要求很高,间隔不能超过1S,而且每次获取到文本内容都要去分发给WEB服务 ...
- NodeJS文件读取:感恩常在--抓把糖果,愉悦客人
通过上一篇文章“NodeJS服务器:一行代码 = 一个的HTTP服务器”,我们已经开启了NodeJS之旅,开发了一个监听在8000端口的HTTP服务器,虽然功能很简单,但是,已经让我们感受到用Node ...
- C#使用文件监控对象FileSystemWatcher 实现数据同步
在C#使用文件监控对象FileSystemWatcher 实现数据同步 2013-12-12 18:24 by 幕三少, 352 阅读, 3 评论, 收藏, 编辑 最近在项目中有这么个需求,就是得去实 ...
- C#使用FileSystemWatcher控件实现的文件监控功能示例
本文实例讲述了C#使用FileSystemWatcher控件实现的文件监控功能.分享给大家供大家参考,具体如下: FileSystemWatcher 可以使用FileSystemWatcher组件监视 ...
- java实现文件监控
文件监控器: package testfile; import org.apache.commons.io.monitor.FileAlterationListenerAdaptor; import ...
- Linux下日志文件监控系统Logwatch的使用记录
Linux下日志文件监控系统Logwatch的使用记录 原文:http://www.cnblogs.com/kevingrace/p/6519504.html 在维护Linux服务器时,经常需要查看系 ...
- 超实用文件监控多线程FTP上传工具
这是自己很久以前写的一个多线程FTP 上传工具,支持多账户,自定义线程数,自定义文件监控目录,可用做文件发布使用,非常实用,今天有小伙伴问起,现分享出来: using System; using Sy ...
- 四步搞定Zabbix 日志文件监控
Zabbix 日志文件监控 一.给运行Zabbix agent的用户授予要监控日志的读取权限. 1. 執行下面的命令,追加app的可讀權限: setfacl -m u:app:r-- /var/log ...
随机推荐
- 福大软工1816:Beta(2/7)
Beta 冲刺 (2/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 为utils_wxpy.py添加注释 ...
- mysql hql异常
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; nested ex ...
- PHP 多文件打包下载 zip
<?php $zipname = './photo.zip'; //服务器根目录下有文件夹public,其中包含三个文件img1.jpg, img2.jpg, img3.jpg,将这三个文件打包 ...
- WordPress使用淘宝IP地址库的API显示评论者的位置信息(二)
1 淘宝IP地址库的接口说明 在上一篇文章<WordPress使用淘宝IP地址库的API显示评论者的位置信息(一)>中,vfhky使用了新浪工具提供的这个IP接口显示博客评论者的位置信息. ...
- react-自定义事件
没有嵌套关系的组件(如兄弟组件)之间的通信,只能通过自定义事件的方式来进行. var EventEmitter = require('events').EventEmitter; import Rea ...
- 第210天:node、nvm、npm和gulp的安装和使用详解
一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...
- 【bzoj3573】[HNOI2014]米特运输 树形dp
题目描述 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题.D星上有N个城市,我们将其顺序编号为1到N,1号城市为首都.这N个城 ...
- presence_of_element_located与visibility_of_element_located区别
selenium 问题:加了显性等待后,操作元素依然出错 背景: 用WebDriverWait时,一开始用的是presence_of_element_located,我对它的想法就是他就是用来等待 ...
- list+map
通常读取数据库表中的一条记录后,可以存储于Hashmap变量中:若要读取多条记录,则依次读取每个记录时,先用Hashmap变量存取,然后将Hashmap加到ArrayList变量中. 注意: 每次读取 ...
- 我的bootstrap学习
前端开发框架bootstrap Bootstrap 安装 <link ref="stylesheet" href="bs/css/bootstrap.css ...