Node.js Stream - 深入篇

前言

如何让自我执行力得到解放

这篇博文本打算星期五就写,硬生生的被我拖到了星期天(刷了两天动漫),还有昨晚上打开手机看了一下,MD我是狗(对方网名,挺文艺的)又在这个时候问我问题,我表示我正在经历思想斗争(虽然还是被懒癌击败…),每个星期五星期六总会来(跟dayima似得)。。今天早上也总算是回过神来了。如何改变现状嘛╮(╯▽╰)╭,MDZZ我是狗天天给我压力,还是在我最脆弱的时刻。。。总的来说还是压力太小闲的,都快毕业的人啦,做事方面居然还是如此慵懒,现在我在此立誓,如果下次还这样,就让我是狗直播吞粪!哎,闲话也不多说,停滞不前也不是我的风格,想想以后美好的生活,嘛,瞬间有动力了,有木有!

使用screen终端复用器

前言

自从租了云服务器后,经常需要使用SSH进行远程登录管理,每次进行耗时操作时为了防止该任务独占会话以及断开连接时任务终止,我会使用nohup命令将任务与当前会话分离,使用命令如下:

$ nohup wget <url> &

nohup命令对wget做了三件事:

  • 阻止SIGHUP信号发送到该进程
  • 关闭标准输入
  • 重定向标准输出和标准错误到文件nohup.out

这样wget就能安全的运行在后台,并不会随着会话的结束而结束,但其缺点是,浏览命令的执行结果变得不那么直观(需要打开nohup.out文件)。而screen终端复用器正好能满足我们的需求。

Node.js 中使用 Redis 来实现定时任务

前言

最近在cnode社区看到死月大神写了一篇关于redis定时任务的文章,其中的序言时这样的:

本文所说的定时任务或者说计划任务并不是很多人想象中的那样,比如说每天凌晨三点自动运行起来跑一个脚本。这种都已经烂大街了,随便一个 Crontab 就能搞定了。
这里所说的定时任务可以说是计时器任务,比如说用户触发了某个动作,那么从这个点开始过二十四小时我们要对这个动作做点什么。那么如果有 1000 个用户触发了这个动作,就会有 1000 个定时任务。于是这就不是 Cron 范畴里面的内容了。
举个最简单的例子,一个用户推荐了另一个用户,我们定一个二十四小时之后的任务,看看被推荐的用户有没有来注册,如果没注册就给他搞一条短信过去。Σ>―(〃°ω°〃)♡→

看完后联想起“快递一直放在快递柜没领,然后隔个24小时就发一条短信给你,如果有多个快递,就有多条每隔24小时的短信发给你(吗哒,要疯啦w(゚Д゚)w!)”的例子类似的,想着以后可能也会遇到这种需求,于是研究了一番。。。

REPL模块热加载命令行工具

使用方法:

load(module_name)

加载模块,module_name为模块名,
若module_name为/aa/bb/cc-dd.js,
需要用ccDd(将-d替换成D)对象调用其属性或方法。

用法如下:

1
2
3
4
5
6
7
8
9
10
> load('express');
undefined
> express. //按tab
express.__defineGetter__ express.__defineSetter__
express.__lookupGetter__ express.__lookupSetter__
express.__proto__ express.constructor
express.hasOwnProperty express.isPrototypeOf
express.propertyIsEnumerable express.toLocaleString
express.toString express.valueOf
...