注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

yu.chen的博客

坚持到底就是胜利

 
 
 

日志

 
 
关于我

喜欢数学, 喜欢编程,喜欢开发系统,喜欢逆向工程,喜欢欣赏开源前辈的代码

网易考拉推荐

继续解决erlang的port问题  

2012-09-06 09:18:45|  分类: 系统设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1. 仔细阅读文件couch_os_process.erl文件,改写后为我所用
port通讯在rabbitmq中很少使用到,在couchdb的代码中看到,couchdb项目把把他进化为了一个服务
但是这个服务是局部注册的
couch_os_process, 适合那种一问一答的服务程序。但是scm不是这么回事,scm中有些命令存在对话情况,需要客户端与服务器端双方的通讯。

1.1. 看couchspawnkillable.sh文件
其中遇到了特殊字符,"$$", $*, 含义是什么?
这些符号应该是属于的bash,下面的页面中应该有解释
http://blog.sina.com.cn/s/blog_45895cd50100fto5.html

echo "kill -9 $$"  $$表示输出脚本自己的pid,便于外层调用的程序获得这个pid,在杀死他
exec $* , 执行传入的命令,$*的命令参数


1.2. 看问题的另一面,command server的协议介绍
想想如何如何适应command server, 如何改造couch_os_process.erl的代码
command server的协议都是从客户端发起的,服务器返回结束的标志是通过r通道的返回。

发现一条command server命令的执行过程比较复杂,不是单纯的一来一回的通讯方式,所以决定还是先看python的hg的command server的实现代码,吸收后改写为erlang的版本。
写完后,作为开源项目处理。

1.3. 了解erlang的port的相关的内容
http://www.erlang.org/doc/reference_manual/ports.html
了解了port与driver的区别,使用port而不要使用driver,port是外部程序与内部程序相互隔离,不会影响erlang的稳定性。


2. 家里的打印纸用完了,别忘记买了。
打印机的重复打印时,有字一面朝上。
  评论这张
 
阅读(29)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017