# 1

今晚看到好几篇文章把golang,Node.js还有Nginx-lua拿来说事,Node.js现在自然比较熟悉,golang则有过一些了解,而Nginx-lua则少有听到。

有好事者对Node.js和Nginx-lua做了些benchmark的工作,似乎nginx-lua的性能不错,在CPU和内存上更胜一筹。

http://bluehua.org/demo/php.node.lua.html

# tenengine

http://tengine.taobao.org/

https://github.com/alibaba/tengine

tengine是taobao的nginx修改版,可以被看作一个更好的Nginx,或者是Nginx的超集。

感觉他们的ngx_http_concat_module这个模块有些意思,它可以将对css、javascript的请求结果拼接起来,从而减少下载时间。

# Node.js 监测文件改动

在调试的时候,经常需要重新启动 node.js 以便修改过的文件生效,原来第三方的 cluster 有一个配置项,可以很方便的配置监测时间间隔,文件改动后自动重新启动 worker,但是原生的 cluster 就没有这个功能了,需要自己来实现。

fs 模块提供了 watch 函数,可以方便的监测文件修改,使用这个就可以来实现文件修改后自动重启 woker 功能了。
//------------------------------------------------------------------
if (cluster.isMaster) {
    process.title = appName + ' master';
    console.log(process.title, 'started');

var workers = [];

// 根据 CPU 个数来启动相应数量的 worker
    for (var i = 0; i < numCPUs; i++) {
        var worker = cluster.fork();
        workers.push(worker.pid);
    }

process.on('SIGHUP', function() {
        // master 进程忽略 SIGHUP 信号
    });

// 监测文件改动,如果有修改,就将所有的 worker kill 掉
    fs.watch(__dirname, function(event, filename) {
        workers.forEach(function(pid) {
            process.kill(pid);
        });
    });

cluster.on('death', function(worker) {
        var index = workers.indexOf(worker.pid);
        if (index != -1) {
            workers.splice(index, 1);
        }
        console.log(appName, 'worker', '#' + worker.pid, 'died');
        worker = cluster.fork();
        workers.push(worker.pid);
    });
}

//--------------------------------------------------------

最新文章

  1. tornado 学习笔记17 HTTPServerRequest分析
  2. angularjs之ng-bind和ng-model
  3. YII2.0上传文件
  4. jQuery选择器之子元素过滤选择器Demo
  5. 最常用的MySQL命令语句
  6. js获取url参数值的两种方式
  7. codeforces 710C
  8. Android ExpandableListView BaseExpandableListAdapter (类似QQ分组列表)
  9. 十二.200多万元得到的创业教训--app名字是关键
  10. linux命令:find
  11. js第一课总结
  12. ORM之自关联、add、set方法、聚合函数、F、Q查询和事务
  13. windows内核对象管理学习笔记
  14. hdu 3015
  15. 0 or 1(hdu2608)数学题
  16. 关于thymeleaf+layout布局的使用方式,spring boot 访问页面(静态页面及jsp页面)
  17. Java堆外内存管理
  18. Dubbo -- 系统学习 笔记 -- 示例 -- 只订阅
  19. 2018.08.29 hdu3507 Print Article(斜率优化dp)
  20. Shell记录-Shell命令(文件权限)

热门文章

  1. php 获取/设置用户訪问页面语言类
  2. actor中!(tell)与forward的差别
  3. Solidworks如何自动打开和关闭特征识别FeatureWorks
  4. C#运行原理——我的柔情你永远不懂
  5. 制作mac U盘启动
  6. h5移动端百分比
  7. Hadoop-2.4.1学习之怎样确定Mapper数量
  8. Android蓝牙开发
  9. Swift的String与OC的NSString的区别
  10. php json_decode失败,返回null