nodejs两个例子
1.nodejs多线程
var cluster=require("cluster");//ͨ¹ýcluster¿ÉÒÔ·Ö³öһЩ×ÓÏß³Ì
var http=require("http");
var numCPUs=require("os").cpus().length;//»ñµÃCPUÊǼ¸ºË
console.log(numCPUs);
var rssWarn=(12*1024*1024);
var heapWarn=(10 * 1024 * 1024);
if (cluster.isMaster) {
for (i = 0; i < numCPUs; i++) {
var worker = cluster.fork();
worker.on("message", function (m) {
if (m.memory) {
if (m.memory.rss > rssWarn) {
console.log('Worker' + m.process + " using to much memory");
}else {
console.log('Worker' + m.process + " is processing");
}
}
})
}
cluster.on("death", function (worker) {
console.log("worker " + worker.pid + ' died');
cluster.fork();
});
}else {
http.Server(function (req, res) {
res.writeHead(200);
res.end("Hello World\n");
}).listen(3000);
setInterval(function report() {
process.send({ "memory": process.memoryUsage(), "process": process.pid });
}, 1000);
}
2.nodejs日志分块
var fs=require('fs');
var log='D:/nodejs/log_file.log';//ÈÕÖ¾Îļþ·¾¶
var buf;
var childPath=__dirname;//·Ö¸îµÄÈÕÖ¾Îļþ´æ·ÅµÄ·¾¶
var buf_size=1024*10;//·Ö¸îÈÕÖ¾Îļþ×ÓÎļþ×î´óµÄ´óС
var logSize;//ÇóµÄÈÕÖ¾Îļþ´óС
var offse=0;
fs.stat(log,function(err,stats){
if(err) throw err;
logSize=stats.size;//µÃµ½Îļþ´óС
//´ò¿ªÎļþ
fs.open(log,'r',0666,function(err,fd){
if(err) throw err;
buf=new Buffer(buf_size);
readLog(fd);
});
});
var lognumber=0;
function readLog(fd){
lognumber++;
//¶ÁÈ¡ÈÕÖ¾
fs.read(fd,buf,0,buf_size,offse,function(err){
if(err) throw err;
logArr=buf.toString('utf8').split('\n');
var last=false;
if(offse+buf_size<logSize){
last=logArr.pop();
// console.log(last);
}
writeChildLog(childPath+"/logchild"+lognumber+'.log',logArr);
// console.log(offse+"|"+last.length+"|"+logSize);
if(last.length>0){
offse+=buf_size-last.length;
// console.log(offse);
buf=new Buffer(buf_size);
if(offse<logSize){
readLog(fd);
}
}
});
}
function writeChildLog(filename,logArr){
console.log(logArr.join("\n"));
fs.open(filename,'w',function(err,fd){
if(err) throw err;
fs.write(fd,logArr.join("\n"),0,'utf8',function(e){
if (e) throw e;
fs.close(fd);
});
});
}
nodejs两个例子的更多相关文章
- C#堆栈原理(我有两个例子测试你到底会不会)
背景 上次写了一篇文章关于try finnally的一些疑问(被我用windows live覆盖了,草),后来经过大神们解释,我明白了在我理解了try.finnally运行原理后,还欠缺的就是关于值类 ...
- (3两个例子)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...
- 解决Linux终端乱码的两则例子
现象描述 我们先来说一下出现乱码的原因. 例子 先举个实际的例子,我们一般通过ssh远程到服务器上进行操作.当在终端上执行一些有输出的任务时,有可能会遇到乱码,特别是输出中有中文时. 比如,我登陆上o ...
- HTTP基础(分析两个例子)
两个例子(一个get,一个post)(一个是访问页面,一个是提交修改后的博文): preferences.aspx:(header)(文件) 1. Remote Address:42.121. ...
- tkinter 的两个例子
第一个例子:after 用于定时操作 import tkinter as tk import time class MyApp(tk.Frame): def __init__(self, msecs= ...
- 161223、mysql锁的两个例子
版本:mysql5.5.52 存储引擎:InnoDB 隔离级别:READ-COMMITTED 示例一: 事务1:左图 事务2:右图 1. 事务2中属于快照读,基于多版本的并发控制协议--MV ...
- android:layout_weight越大所占比例越大和越大所占比例越小的两个例子
摘要: 我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3907146.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的 ...
- php中使用curl两个例子
第一个例子: 调用一个天气预告的接口 $data = 'theCityName=石家庄'; $cUrl = curl_init(); curl_setopt($cUrl, CURLOPT_URL, & ...
- Android线程之Thread 、Runnable 的两个例子
Thread例子: package fy.test; import android.app.Activity; import android.os.Bundle; import android.os. ...
随机推荐
- win10执行shell脚本
我们在win10如何执行以.sh文件的脚本呢? 开发步骤:1.写脚本b2q_goods.sh #!/bin/bashsql="select * from b2q.goods where go ...
- js创建form添加input项目并提交表单
var generateHideElement = function (name, value) { var tempInput = document.createElement("inpu ...
- 对Linux命令进一步学习
root@wuheng-virtual-machine:/home/wuheng# ls -ltotal 44drwxr-xr-x 2 wuheng wuheng 4096 Mar 3 01:30 ...
- js json 单双引号互换
var _adrobj = JSON.stringify(address).replace(/\"/g,"'"); var _nstr = _adrdata.replac ...
- 基于字典SR各种方法【稀疏编码多种方法】
基于字典的图像超分辨率实现 - CSDN博客 http://blog.csdn.net/u011630458/article/details/65635155 简介 这段时间在看基于字典的单帧图像超分 ...
- hdu 3681(bfs+二分+状压dp判断)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3681 思路:机器人从出发点出发要求走过所有的Y,因为点很少,所以就能想到经典的TSP问题.首先bfs预 ...
- node中的require和exports
http://cnodejs.org/topic/4f16442ccae1f4aa270010e9
- 数据库设计——E-R图
一,复习下基础 1.弱实体 这样的实体须要依赖还有一个实体.若还有一个实体不存在了.它也随之消失.相对而言,它依赖的那个实体成为强实体. 2,特殊化 在数据库设计的过程中,我们会发现.一个实体能够依照 ...
- django用户认证系统——注销和页面跳转5
当用户想切换登录账号,或者想退出登录状态时,这时候就需要注销已登录的账号.现在我们来为网站添加注销登录的功能,这个功能 Django 也已经为我们提供,我们只需做一点简单配置. 注销登录 注销登录的视 ...
- XAMPP修改mysql的默认密码的三种方法
How I can set a "root" password in MySQL? (method 1) In the \xampp\mysql\bin directory en ...