[Idea Fragments]2013.08.08
# 1
今晚看到好幾篇文章把golang,Node.js還有Nginx-lua拿來說事,Node.js現(xiàn)在自然比較熟悉,golang則有過一些了解,而Nginx-lua則少有聽到。
有好事者對(duì)Node.js和Nginx-lua做了些benchmark的工作,似乎nginx-lua的性能不錯(cuò),在CPU和內(nèi)存上更勝一籌。
http://bluehua.org/demo/php.node.lua.html
?
# tenengine
http://tengine.taobao.org/
https://github.com/alibaba/tengine
tengine是taobao的nginx修改版,可以被看作一個(gè)更好的Nginx,或者是Nginx的超集。
感覺他們的ngx_http_concat_module這個(gè)模塊有些意思,它可以將對(duì)css、javascript的請求結(jié)果拼接起來,從而減少下載時(shí)間。
?
# Node.js 監(jiān)測文件改動(dòng)
在調(diào)試的時(shí)候,經(jīng)常需要重新啟動(dòng) node.js 以便修改過的文件生效,原來第三方的 cluster 有一個(gè)配置項(xiàng),可以很方便的配置監(jiān)測時(shí)間間隔,文件改動(dòng)后自動(dòng)重新啟動(dòng) worker,但是原生的 cluster 就沒有這個(gè)功能了,需要自己來實(shí)現(xiàn)。
fs 模塊提供了 watch 函數(shù),可以方便的監(jiān)測文件修改,使用這個(gè)就可以來實(shí)現(xiàn)文件修改后自動(dòng)重啟 woker 功能了。
//------------------------------------------------------------------
if (cluster.isMaster) {
??? process.title = appName + ' master';
??? console.log(process.title, 'started');
??? var workers = [];
??? // 根據(jù) CPU 個(gè)數(shù)來啟動(dòng)相應(yīng)數(shù)量的 worker
??? for (var i = 0; i < numCPUs; i++) {
??????? var worker = cluster.fork();
??????? workers.push(worker.pid);
??? }
??? process.on('SIGHUP', function() {
??????? // master 進(jìn)程忽略 SIGHUP 信號(hào)
??? });
??? // 監(jiān)測文件改動(dòng),如果有修改,就將所有的 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);
??? });
}
//--------------------------------------------------------
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/piaoger/p/3247160.html
總結(jié)
以上是生活随笔為你收集整理的[Idea Fragments]2013.08.08的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj3252
- 下一篇: hdu 1879 继续通畅工程(最小生成