`
jias_je
  • 浏览: 39653 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

erlang 学习笔记1

阅读更多
周末在看otp的时候,自己做了一个小的module应用
利用gen_server实现读写文件,其中日志用的log4erl,如果有朋友要玩的话可以去他的svn上down一下,附件是源代码及log4erl配置文件,注意改一下路径,这个module简单readme如下,希望这个example对初学的人有帮助,也希望大家指点


介绍
module: rw_file 读写文件控制

原理
  在state中 一个资源文件作为一个key 对应 valueList ==请求他的所有目标文件
从该key读入的data将会依次写入他的valueList,该读写是一个进程每隔1秒时间读写2kb数据[大小可在程序中修改],
所以state中有多少个key就会有多少个进程,当该key被读完关闭后,state将移除该key及其valueList且其对应
进程会退出。

主要函数功能介绍
  start()
  启动log4erl,gen_server。

 
  request(Sour,Dest) ->
  {response,request_exist}|
  {response,request_success} |
  {response,request_faild}
 
  Sour 为请求的资源文件,  如"f:/test.txt"
  Dest 为要写入的目的文件  如"f:/test1.txt"
  {response,request_exist} :该类型请求已经存在队列中且正在执行读写,所以将被忽视
  {response,request_success} :该请求成功将会被加入队列,服务器将执行此次读写任务
  {response,request_faild} :在请求的过程中遇到错误,如系统错误,资源不存在等,请求不会被加入队列
 
  example:
  rw_file:request("d:/log.txt","f:/gg0.dat") --> {response,request_success} f盘会新建gg0.dat
  rw_file:request("d:/log.txt","f:/gg0.dat") --> {response,request_exist}
  rw_file:request("d:/log.txt","e:/gg0.dat") --> {response,request_success} e盘会新建gg0.dat
  rw_file:request("d:","f:/gg0.dat") --> {response,request_faild}
 
  stop()
  停止log4erl,server。
分享到:
评论

相关推荐

    erlang学习笔记

    erlang编程指南学习笔记,包含具体操作命令例子

    Scala、Groovy++、Stackless Python、Erlang 学习笔记及分享

    学习Scala,你需要理解其静态类型的特性、模式匹配、 Actors模型以及类型系统,包括高阶函数、特质(traits)和不可变数据结构。 Groovy是另一种基于JVM的动态编程语言,它的语法简洁,易于阅读和编写。Groovy与...

    Redis全套学习笔记 (带章节目录) 完整版pdf

    本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...

    rabbitmq学习笔记和软件和插件

    **RabbitMQ学习笔记与软件插件详解** RabbitMQ是一种广泛应用的消息中间件,它基于AMQP(Advanced Message Queuing Protocol)协议,提供可靠的消息传递服务。在分布式系统中,RabbitMQ扮演着数据交换中心的角色,...

    java版商城源码-hello-erlang:Erlang的笔记和例子

    这些是我在学习过程中关于 Erlang 的笔记和主要引用。 检查部分以查看我从哪里获取报价。 请注意,此 repo 始终在进行中。 (我还没找到时间完成这本书。) 话题 陷阱 erlang 没有null值这样的东西 每个函数都需要...

    rabbitmq学习笔记.zip

    在这个“rabbitmq学习笔记.zip”压缩包中,我们可以期待找到一系列关于RabbitMQ的核心概念、安装教程、使用方法以及常见问题的详细说明。 首先,RabbitMQ的基本概念包括生产者(Producer)、消费者(Consumer)、...

    redis 的学习笔记A

    1. NoSQL数据库的概念和发展 NoSQL(Not Only SQL)并非拒绝SQL,而是指非关系型的数据库系统。随着互联网技术的发展,特别是Web2.0时代,高并发、大数据量的场景增多,传统的关系型数据库在扩展性和性能上面临挑战...

    RabbittMQ软件,资料及笔记

    这个“RabbittMQ软件,资料及笔记”压缩包可能包含了一系列关于RabbitMQ的学习资源,包括文档、教程、笔记等,旨在帮助用户深入理解和熟练掌握这一强大的中间件。 首先,让我们来了解一下RabbitMQ的核心概念和功能...

    ericssonaxel.github.io:evm.com

    【描述】"帖子" 提示我们这个项目可能包含了一系列的文章或博客帖子,这些帖子可能涵盖了Erlang语言的学习笔记、EVM的内部工作原理、如何使用Erlang进行并发编程、Erlang在分布式系统中的应用,以及与SCSS(Sassy ...

    rabbitmq.zip

    乐优商城rabbitmq Linux安装包,esl-erlang_17.3-1_centos_6_amd64.rpm ,esl-erlang_17.3-1_centos_6_i386.rpm,rabbitmq-server-3.4.1-1.noarch.rpm 等,还有安装笔记,学习黑马乐优商城的同学可以进行下载

    rabbitmq笔记及面试要点

    选择RabbitMQ的理由包括其对AMQP标准的全面支持,提供高度可靠的消息持久化功能,以及强大的高并发处理能力,这得益于Erlang语言的天然优势。此外,RabbitMQ的集群部署简单,社区活跃,使得它成为许多企业的首选。 ...

    Thrift功能简介

    例如:C ++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C# Cocoa,JavaScript,Node.js,Smalltalk,OCaml和Delphi等语言。 Thrift功能简介 在使用Thrift时,我们首先需要编写一个thrift文件。 这个文件是...

    compsci390-plp

    这些笔记可能以PDF或Markdown格式存在,为学生提供了学习的核心资源,帮助他们消化和回顾课堂讲解的内容。 “所有作业”这部分内容可能涉及到一系列编程练习,旨在让学员实践所学知识。作业可能涵盖用Erlang或其他...

    sample-elasticsearch-demo

    1. **Elasticsearch**:Elasticsearch是一个基于Lucene的开源搜索引擎,提供了实时、分布式的搜索和分析能力,广泛应用于日志分析、监控、推荐系统等领域。它的特点是横向扩展性强,能处理大量数据并快速响应查询。 ...

    程序员面试刷题的书哪个好-real-time-phoenix-notes:实时凤凰笔记

    当然分布式系统本质上是复杂的,但学习研究它是值得的,可以为业务系统带来巨大的回报。另外本身,这门技术也很有趣。 《Real-Time Phoenix - Build Highly Scalable Systems with Channels》 本项目里是内容摘要与...

    演示文稿:Lambda Days 2021演讲的幻灯片和文字代码-BEAM上的声音:分布式Lisp土地上的音乐

    3. **笔记或讲义**:可能包含额外的解释和背景信息,帮助听众更好地理解演讲内容。 4. **示例项目**:如果有的话,可能包括可运行的代码示例,以便观众可以亲自尝试和学习。 5. **资源链接**:指向其他相关文献、...

    Walter3semestre

    Elixir 是一种基于 Erlang VM(BEAM)的函数式编程语言,设计用于构建可扩展的并发系统,常用于分布式和实时系统。 在压缩包 "Walter3semestre-main" 中,我们通常可以期待找到一系列与 Elixir 编程相关的资源,...

    演讲:我做过的技术演讲集

    1. **Ruby**: Ruby是一种面向对象的动态编程语言,以其简洁、优雅的语法而闻名。它强调代码的可读性和开发效率,常用于Web开发,尤其是与Ruby on Rails框架配合使用。在演讲中,可能会涵盖Ruby的基本概念、核心特性...

    MyPaxosTests:收集我的代码

    笔记 在这里,我收集了有关选择Paxos等合适实现的说明,并快速测试了几种实现,主要关注可行性(文档是否完好?),存储效率,速度和鲁棒性。 任务 随附Ole Rixmann的有关Paxos实现的硕士学位论文,应将其与basho 的...

Global site tag (gtag.js) - Google Analytics