`
做一行爱一行吧
  • 浏览: 23647 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

erlang的supervisor

 
阅读更多

       supervisor是erlang的一个行为框架,他的工作重心在于管理和监督我们启动的进程,并对所有进程安排一定的策略

       把上回关于app的代码直接拿来用一下,然后我们对map_sup.erl增加一些新的东西进去,上次我们只是写了简单的启动模式,

 

-module(map_sup).

-behaviour(supervisor).
-export([start_link/0, init/1]).

start_link()->
	supervisor:start_link({local,?MODULE}, ?MODULE, []).

init([]) ->
	erlang:process_flag(priority, high),

	MapManager = {map_manager,{map_manager,start_link,[]},
		      permanent,2000,worker,[map_manager]},
	
	List = [MapManager],

	{ok,{{one_for_one,1000,2}, [MapManager]}}.

 MapManager 中的参数中指定了map_manager这个module,我们简单写一下map_manager(这个文件的作用是管理进程,包括了进程的创建和停止等对进程的详细操作)。这里我们使用otp中最常用的行gen_server,otp(Open telecom platform,请记住全称)

 

 

-module(map_manager).

-behaviour(gen_server).


-export([start_link/0]).

-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2]).

start_link()->
	gen_server:start_link({local,?MODULE},?MODULE,[],[]).%%这就是gen_server启动一个进程的方式

init([]) ->
	self() ! begin_map,
	{ok, #state{}}.

handle_info(begin_loading_map, State) ->	
	{noreply, State};

handle_info(Event, State) ->
	?ERRMSG("receive unknown message:~p~n", [Event]),
	{noreply, State}.

handle_call(Event, _From, State) ->
    {reply, Reply, State};


handle_call(_Request, _From, State) ->
    Reply = ok,
    {reply, Reply, State}.

handle_cast(_Msg, State) ->
    {noreply, State}.

terminate(_Reason, _State) ->
    ok.

code_change(_OldVsn, State, _Extra) ->
    {ok, State}.

 这里我还没想好要写些什么来测试,当我们start_link的时候我们要为我们这个进程配置一些参数,或者说,我们的进程要有一个状态才能去完成我们的逻辑,所以init方法就是初始化一个进程的方法,每次调用start_link,init都会按照需要来初始化一个进程,这里我们会吧ets放到进程中,这就是一个基础的框架,明天想想再来扩展一下.

分享到:
评论

相关推荐

    erlang四大behaviour之四-supervisor

    ### Erlang Supervisor Behaviour详解 #### 一、Erlang Supervisor简介与作用 Erlang Supervisor是Erlang四大Behaviour之一,主要负责管理监控树(supervision tree)中的子进程,确保系统的稳定运行。在Erlang...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

    erlang_版本24.3.4.4

    - **OTP(开放电信平台)**:Erlang OTP是一套库和设计原则,提供了构建可靠系统的框架,包括Mnesia数据库、Event Manager、Supervisor和GenServer等行为模块。 学习Erlang时,你需要掌握以下核心概念: - **BEAM...

    domain-supervisor:在域中运行协同例程,以实现强大的并行异常处理。 受 Elixir 主管和流程的启发

    受 Erlang Supervisor 和 Process 类的启发,它们通过将协程彼此隔离来启用容错并行应用程序,从而防止协程中的异常使主要 nodejs 进程崩溃。安装 npm install domain-supervisor用法 var Supervisor = require('...

    erlang资源

    书中可能讲解了OTP的设计原则和组件,如GenServer、GenEvent和Supervisor等。 3. **错误处理与容错**:Erlang推崇“let it crash”哲学,鼓励程序在遇到错误时快速失败并重启,而不是尝试修复。书里可能会讨论如何...

    两本erlang电子书

    OTP的引入进一步强化了这种并发能力,提供了诸如GenServer、Supervisor、GenEvent等行为模式,以规范化并发程序的设计。这些模式帮助开发者构建可复用、容错的组件,降低了系统的复杂性。 总的来说,如果你想要深入...

    《Programming Erlang》

    8. **错误处理**:Erlang鼓励使用“失败-快速”策略,即在检测到错误时立即崩溃,然后由Supervisor树自动重启,以恢复系统的稳定状态。 9. **模式匹配**:Erlang中的模式匹配是其语法的一个强大特性,可以方便地...

    图书:Erlang和OTP实战

    OTP是基于Erlang的一套设计原则和库,它提供了标准的组件和模式,如GenServer、GenEvent和Supervisor等,用于构建可靠的分布式系统。OTP的核心理念是模块化、可复用和容错性,通过这些组件,开发者可以快速构建出...

    Erlang23_3.zip

    OTP包括一系列的行为模式,如GenServer、GenEvent和Supervisor,这些帮助开发者轻松实现状态管理、事件处理和容错机制。 此外,Erlang的REPL(Read-Eval-Print Loop)环境允许开发者快速测试代码并查看结果,这...

    erlang tcp_server

    1. **Erlang OTP(Open Telecom Platform)**:Erlang OTP是一个标准库,提供了强大的模块化设计和容错机制,包括行为模式如GenServer、GenEvent和Supervisor等,这些对于构建可靠的TCP服务器至关重要。 2. **...

    erlang官方资源包

    9. 高可用性和容错性:OTP提供了一套名为Supervisor的行为,用于创建和管理进程树,当子进程失败时,Supervisor可以自动重启它们,确保系统的持续运行。 总结起来,"otp_src_21.3.tar.gz"是一个包含Erlang OTP框架...

    supervisor博客代码附件

    在Erlang编程环境中,`Supervisor`是 OTP(Open Telephony Platform)设计模式中的一种,它是构建可靠、容错系统的重要组成部分。本篇博客的附件着重探讨了如何使用Erlang的`Supervisor`模块,并通过编写代码来演示...

    分布式应用Erlang:Erlang_OTP_19_win64

    Erlang OTP 19_win64是一款专为Windows 64位系统设计的Erlang软件开发工具包,它包含Erlang编程语言和OTP(Open Telecom Platform)框架。Erlang是一种强大的、动态类型的函数式编程语言,特别适合构建高可用性、...

    Erlang入门:构建application练习5(监督树)

    Erlang是一种面向并发的、函数式编程语言,特别适合于构建高可用性和容错性的分布式系统。在Erlang中,"应用"(application)是组织代码的基本单元,它包含了模块、配置文件以及启动和停止应用程序的逻辑。在这个...

    erlang-rpm-21.3.4.zip

    4. **OTP(Open Telecom Platform)框架**:OTP提供了一组标准库和设计模式,用于构建可靠的、可维护的系统,包括Mnesia数据库、Supervisor进程监控和GenServer行为模式等。 5. **函数式编程**:Erlang采用函数式...

    erlang 设计指南

    OTP提供了一系列预定义的行为(如GenServer、GenEvent和Supervisor),它们是实现可靠、容错服务的基石。Supervision树是OTP的核心概念,用于组织和管理进程,确保系统在部分故障时能够自动恢复。 总之,Erlang设计...

    Erlang程序设计及源码

    OTP是Erlang生态系统的核心,提供了一系列库和设计模式,如行为(Supervisor、GenServer等)、应用程序框架和工具,帮助开发者构建可靠、可维护的系统。 8. **Erlang源码分析** 配套的源码文件可以帮助读者更好地...

    erlang英文手册+中文教程

    OTP是Erlang的一个重要框架,提供了许多预定义的行为模式和库,如GenServer、GenEvent、Supervisor等,它们帮助开发者遵循良好的软件工程实践,实现模块化、容错和监控。 **Erlang的手册与中文教程** `...

    erlang otp 19.1 官网文档 HTML格式

    它包括Erlang虚拟机(BEAM)、进程间通信机制、错误处理工具以及一系列预先设计好的行为模式(Behaviours),如GenServer、GenEvent和Supervisor,这些模式提供了强大的容错和恢复能力。 **2. ERTS - Erlang Run-...

    Erlang资料大全

    理解并熟练运用OTP组件,如GenServer、GenEvent和Supervisor,是成为一名熟练的Erlang开发者的关键。 总的来说,“Erlang资料大全”这个压缩包提供的资源将帮助学习者从零开始了解Erlang,掌握其基本语法、并发模型...

Global site tag (gtag.js) - Google Analytics