- 浏览: 168288 次
- 性别:
- 来自: 杭州
最新评论
-
fair_jm:
谢谢lz的文章 例子举得通俗易懂 很有启发 ^_^
[erlang入门学习] erlang中的二进制数据处理 -
头疼项目:
wahte?
rails不支持bigint类型的mysql主键 -
头疼项目:
[color=blue][/color]
rails不支持bigint类型的mysql主键 -
xiangchao027:
我能明白,因为太嫉妒了!
rails 3 下面编写项目模板 -
ruby_windy:
我开了代理解决:linux下使用 export http_pr ...
[Ruby新手教学] 要有中国特色
分析一下之前的代码,可以注意到,server的功能其实是非常类似的,我们可以把公共的部分抽取出来,把不同的部分单独实现,做到一定程度上的复用,erlang支持动态的使用变量,例如:
这样的代码会启动my_server,借助这个功能,我们可以把模块名作为参数传入,还可以使用模块名作为进程的注册名,于是,代码就便成了这样
使用这段代码,我们只要完成一个回调模块就可以了,例如:
运行一下——
behaviour就是用来作这个的。
没想到把你惊动了,呵呵。
我这个系列是给刚会语法的人看的,主要目的是通过简单可以直接执行的代码学习erlang的一些特有的东西,下一篇就要说behaviour了。
给新手看
这还得等我的erlang中文手册翻译完才行,快了...
先弄出几章来瞧瞧~~
理由呢?
非常感谢你的回复,说实话,最近很忙,没有时间写东西,不过我真的觉得erlang是一个很不错而且常常被误解的语言(上一次有这种感觉的是javascript),看到有人不喜欢,就会有些动力说说我的感受,欢迎继续关注
给新手看
这还得等我的erlang中文手册翻译完才行,快了...
我在网上找到了这个中文的pdf,是不是就是你正在翻译的部分?挺好的,呵呵
我在大学的时候就和同学讨论过,最好有一个有一定经验的人,沿着自己的学习路径讲一门知识,那么,和他思维方式类似的人就会比较容易学习,我这个系列就想做这个事。
不过也许应该修改一下文章的名字,就算是我自己的学习笔记吧
behaviour就是用来作这个的。
没想到把你惊动了,呵呵。
我这个系列是给刚会语法的人看的,主要目的是通过简单可以直接执行的代码学习erlang的一些特有的东西,下一篇就要说behaviour了。
给新手看
这还得等我的erlang中文手册翻译完才行,快了...
behaviour就是用来作这个的。
没想到把你惊动了,呵呵。
我这个系列是给刚会语法的人看的,主要目的是通过简单可以直接执行的代码学习erlang的一些特有的东西,下一篇就要说behaviour了。
behaviour就是用来作这个的。
Mod = my_server. Mod:start().
这样的代码会启动my_server,借助这个功能,我们可以把模块名作为参数传入,还可以使用模块名作为进程的注册名,于是,代码就便成了这样
% my_server5.erl % -module(my_server5). -export([start/2,stop/1]). -export([init/2]). -export([request/2]). % 启动一个模块,注册服务的名称为模块名称 % start(Mod,Env) -> spawn(my_server5,init,[Mod,Env]). stop(Mod) -> Mod ! stop . %请求响应式接口,具体的实现实际上依靠Mod模块的 handle_request 方法% request(Mod, Request) -> Mod ! { request, self(), Request }, ok. % 初始化服务,注册名称,启动init方法,初始化服务时接受一个参数 % init(Mod, Env) -> register(Mod,self()), State = Mod:init(Env), loop(Mod,State). % 实际执行体 % loop(Mod, State) -> receive { request,From,Request } -> {Res,State2} = Mod:handle_request(Request,State), From ! {Mod, Res}, loop(Mod,State2); stop -> io:format("process stopped.last state is ~p~n",[State]) end.
使用这段代码,我们只要完成一个回调模块就可以了,例如:
% my_handle1.erl % -module(my_handle1). -export([init/1,handle_request/2]). init(State) -> State. handle_request(Request,State) -> io:format("request to callback1: ~p~n",[Request]), {"ok",State}.
运行一下——
Eshell V5.7.2 (abort with ^G) 1> c(my_server5),c(my_client),c(my_handle1). {ok,my_handle1} 2> C = my_client:start(),my_server5:start(my_handle1,"init"). <0.49.0> 3> my_server5:request(my_handle1, "hello"). request to callback1: "hello" ok 4> my_server5:stop(my_handle1). process stopped.last state is "init" stop
评论
9 楼
phoenixup
2010-05-26
hittyo 写道
fsword 写道
mryufeng 写道
behaviour就是用来作这个的。
没想到把你惊动了,呵呵。
我这个系列是给刚会语法的人看的,主要目的是通过简单可以直接执行的代码学习erlang的一些特有的东西,下一篇就要说behaviour了。
给新手看
这还得等我的erlang中文手册翻译完才行,快了...
先弄出几章来瞧瞧~~
8 楼
hittyo
2010-05-18
tsxm 写道
说实话,我真的很不喜欢Erlang
理由呢?
7 楼
fsword
2010-05-15
tsxm 写道
说实话,我真的很不喜欢Erlang
非常感谢你的回复,说实话,最近很忙,没有时间写东西,不过我真的觉得erlang是一个很不错而且常常被误解的语言(上一次有这种感觉的是javascript),看到有人不喜欢,就会有些动力说说我的感受,欢迎继续关注
6 楼
tsxm
2010-05-15
说实话,我真的很不喜欢Erlang
5 楼
hittyo
2010-05-10
网上那个不是手册,也不是我翻译的,那个只是某教程的部门章节
4 楼
fsword
2010-05-09
hittyo 写道
给新手看
这还得等我的erlang中文手册翻译完才行,快了...
我在网上找到了这个中文的pdf,是不是就是你正在翻译的部分?挺好的,呵呵
我在大学的时候就和同学讨论过,最好有一个有一定经验的人,沿着自己的学习路径讲一门知识,那么,和他思维方式类似的人就会比较容易学习,我这个系列就想做这个事。
不过也许应该修改一下文章的名字,就算是我自己的学习笔记吧
3 楼
hittyo
2010-05-08
fsword 写道
mryufeng 写道
behaviour就是用来作这个的。
没想到把你惊动了,呵呵。
我这个系列是给刚会语法的人看的,主要目的是通过简单可以直接执行的代码学习erlang的一些特有的东西,下一篇就要说behaviour了。
给新手看
这还得等我的erlang中文手册翻译完才行,快了...
2 楼
fsword
2010-05-07
mryufeng 写道
behaviour就是用来作这个的。
没想到把你惊动了,呵呵。
我这个系列是给刚会语法的人看的,主要目的是通过简单可以直接执行的代码学习erlang的一些特有的东西,下一篇就要说behaviour了。
1 楼
mryufeng
2010-05-07
fsword 写道
分析一下之前的代码,可以注意到,server的功能其实是非常类似的,我们可以把公共的部分抽取出来,把不同的部分单独实现,做到一定程度上的复用,erlang支持动态的使用变量,例如:
这样的代码会启动my_server,借助这个功能,我们可以把模块名作为参数传入,还可以使用模块名作为进程的注册名,于是,代码就便成了这样
使用这段代码,我们只要完成一个回调模块就可以了,例如:
运行一下——
Mod = my_server. Mod:start().
这样的代码会启动my_server,借助这个功能,我们可以把模块名作为参数传入,还可以使用模块名作为进程的注册名,于是,代码就便成了这样
% my_server5.erl % -module(my_server5). -export([start/2,stop/1]). -export([init/2]). -export([request/2]). % 启动一个模块,注册服务的名称为模块名称 % start(Mod,Env) -> spawn(my_server5,init,[Mod,Env]). stop(Mod) -> Mod ! stop . %请求响应式接口,具体的实现实际上依靠Mod模块的 handle_request 方法% request(Mod, Request) -> Mod ! { request, self(), Request }, ok. % 初始化服务,注册名称,启动init方法,初始化服务时接受一个参数 % init(Mod, Env) -> register(Mod,self()), State = Mod:init(Env), loop(Mod,State). % 实际执行体 % loop(Mod, State) -> receive { request,From,Request } -> {Res,State2} = Mod:handle_request(Request,State), From ! {Mod, Res}, loop(Mod,State2); stop -> io:format("process stopped.last state is ~p~n",[State]) end.
使用这段代码,我们只要完成一个回调模块就可以了,例如:
% my_handle1.erl % -module(my_handle1). -export([init/1,handle_request/2]). init(State) -> State. handle_request(Request,State) -> io:format("request to callback1: ~p~n",[Request]), {"ok",State}.
运行一下——
Eshell V5.7.2 (abort with ^G) 1> c(my_server5),c(my_client),c(my_handle1). {ok,my_handle1} 2> C = my_client:start(),my_server5:start(my_handle1,"init"). <0.49.0> 3> my_server5:request(my_handle1, "hello"). request to callback1: "hello" ok 4> my_server5:stop(my_handle1). process stopped.last state is "init" stop
behaviour就是用来作这个的。
发表评论
-
终于决定还是放弃rspec的transaction了
2012-02-25 00:44 1297反复遇到不能正确cleanup的问题,今天看到这篇blog,虽 ... -
fixture使用时需要注意的问题
2011-09-20 15:52 1288今天单测不太顺利,主要是fixture使用不熟悉,记录两个问题 ... -
打开jruby+rails3的多线程开关
2011-09-09 14:48 1617前两天把项目的设置改了一下,添加了 threadsafe=tr ... -
改进一下昨天的工具,不再使用中间文件
2011-09-02 12:06 1254[PS: javaeye上的评论好像不能提交,只好另写一篇了] ... -
数据备份和恢复代码,用于数据库迁移
2011-09-01 22:16 1214apposs要从sqlite3迁移到mysql,支持所谓生产环 ... -
整理一下github的信息
2011-08-28 08:47 1572github有多重要就不说了,网上的资料也很多,这篇blog的 ... -
[erlang新手] init函数参数错误导致的问题
2011-08-16 23:23 2009gen_server的规约要求module必须实现init方法 ... -
简单试用了一下 jruby on jdk7
2011-07-30 19:30 0环境 CPU:Intel(R) Core(TM)2 CPU ... -
[翻译] jruby的并发
2011-07-30 19:17 0原文地址:Concurrency in JRuby ... -
[转述] jruby 对 maven 的支持
2011-07-24 13:18 2269之前开发了 java_side ,主要是便于 jruby 中使 ... -
[翻译] JRuby class loader by example
2011-07-20 13:33 1936大家都知道,JRuby可以用 require 来装载 jar ... -
[Ruby新手教学] 要有中国特色
2011-07-13 15:54 4319今天部署一个系统,发现不能获取gem包,于是看看怎么回事 ... -
[jruby] 建议替换数据库驱动,不再使用 jdbcxxx-adapter
2011-07-11 16:18 1157今天执行 rake spec 出错,才发现我已经落伍很久了.. ... -
[erlang入门学习] erlang中的二进制数据处理
2011-06-30 12:10 10806在网络编程中,我们面 ... -
遇到 rake 0.9.0 bug
2011-05-31 12:01 1045最近突然发现执行 rake 时遇到问题 $ rake -T ... -
[jruby] warbler 配置问题说明
2011-05-30 15:27 1619这篇blog是整理给自己看 ... -
warbler 配置问题说明
2011-05-30 15:26 1这篇blog是整理给自己看 ... -
开发了一个 java_side 插件
2011-05-28 15:59 893花了点时间把以前的一个集成spring的rails插件重写了一 ... -
rails 3 下面编写项目模板
2011-05-22 17:34 1423rails 3出来以后,大家都开始尝试里面的各种功能,我早先也 ... -
jruby下使用nokogiri、xslt
2011-05-21 11:28 1305jruby与原生的ruby vm之间最大的区别是多了一个jvm ...
相关推荐
- 使用yum安装Erlang:`sudo yum install erlang-23.3.4.3-1.el7.x86_64.rpm` 2. **安装RabbitMQ**: - 下载RabbitMQ RPM包:`wget https://your_download_link/rabbitmq-server-3.8.17-1.el7.noarch.rpm` - ...
erlang-20.3.8.17-1.el7.centos.x86_64
erlang-sd_notify-1.0-2.el7.x86_64.rpm
rpm包; 包含erlang-23.3-rabbitmq-server-3.8
erlang-xmerl-22.3-1.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。
erlang-21.0.9-1.el7.centos.x86_64.rpm,rabbitmq-server-3.7.7-1.el7.noarch.rpm
erlang-xmerl-23.0.2-2.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。
erlang-21.3.8.11-1.el6.x86_64.rpm
erlang-19.3.6.4-1.el
https://blog.51cto.com/7794482/2436678 可根据文档进行部署,redis+mysql+mq的插件 rabbitmq 安装时需要该插件
erlang-21.3.8.15-1.el7.x86_64.rpm
配套rabbitmq-server-3.8.17-1.el8.noarch.rpm
erlang-21.3.7.1-1.el7.x86_64.rpm rabbitmq基础语言环境。
erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm erlang-20.3.6-1.el7.centos.x86_64.rpm
对应rabbitmq 3.12.4,亲测可用
linux基于centos7.x,erlang21.3.8.16资源适配rabbitmq3.8.5。欢迎大家下载!!!!
erlang-23.2.7-1.el7.x86_64 .rpm
erlang-23.2.6-1.el7.x86_64
esl-erlang_24.2.1-1_centos_7_amd64.rpm
rabbitmq安装前需要安装erlang包,如果没有erlang包,rabbitmp则无法下载成功