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. ... 
随机推荐
- EasyUI DataGrid 编辑单元格
			如下图: 现改为单击某个单元格只对此单元格进行可编辑 <TABLE>标记添加 onClickCell <table id="dg" class="eas ... 
- node js 读取mysql
			1.新版node自带npm 2.下载npm不需要node命令 3.懒得配环境变量.直接把生成的npm复制到报错目录,再把mysql模块复制回来 var mysql = require('mysql') ... 
- 如何将HTML页面的标题设置为“数字天堂”。
			如何将HTML页面的标题设置为“数字天堂”. 解答: <html> <head><title>数字天堂</title></head> < ... 
- 探讨instanceof实现原理,并用两种方法模拟实现 instanceof
			在开始之前先了解下js数据类型 js基本数据类型: null undefined number boolean string js引用数据类型: function object array 一说ins ... 
- js 安全
			0x00 前言 在信息安全领域,可信系统(Trusted system)是一个让人心动的目标,它指的是一个通过实施特定的安全策略而达到一定可信程度的系统. 在计算机中,可信平台模块(Trusted P ... 
- Python相对完美的URL拼接函数
			首先说下什么叫URL拼接,我们有这么一个HTML片段: <a href="../../a.html">click me</a> 做为一只辛苦的爬虫,我们 ... 
- 第5步:建立主机间的信任关系(sgdb1、sgdb2)
			5.1 Oracle用户下建立信任 5.11创建.ssh目录 [root@sgdb1 /]# su - oracle [oracle@sgdb1 ~]$ mkdir .ssh 创建一个.s ... 
- 【bzoj4518】[Sdoi2016]征途  斜率优化dp
			原文地址:http://www.cnblogs.com/GXZlegend/p/6812435.html 题目描述 Pine开始了从S地到T地的征途. 从S地到T地的路可以划分成n段,相邻两段路的分界 ... 
- 将list集合,元素随机打乱
			for循环+随机数 实现相同位置的元素交换 public <T> void shuffle(List<T> list) { int size = list.size(); Ra ... 
- MySQL安装和Navicat安装、破解
			1)mysql下载 地址:https://dev.mysql.com/downloads/mysql/ 2)一路next安装,安装好后文件目录如下(不包括data文件夹,my.ini文件) 3)新建文 ... 
