Erlang入门:构建application练习1

1、定义application回调模块

%% 文件名为bank_app.erl
-module(bank_app).
%% 指定behaviour为application
-behaviour(application).
%% 导出application回调模块的函数
-export([start/2, stop/1]). 

%% 启动application时调用
start(_Type, _Args) ->
("Start ~p ...", [?MODULE]),
{ok, self()}.

%% 停止application时调用
stop(_State) ->
?I("Stop ~p!", [?MODULE]),
ok.

2、加载application

application:load({application, bank, [{mod, {bank_app, []}}]}).

application:load/1的参数为application的资源描述,

{application, bank, [{mod, {bank_app, []}}]}中,

指明application的名称为bank,回调模块为bank_app

application的资源描述具体定义可以参见文档:

http://www.erlang.org/doc/man/app.html

3、启动application

application:start(bank). 

4、停止application

application:stop(bank).

5、卸载application

application:unload(bank).

时间: 2024-10-12 17:06:16

Erlang入门:构建application练习1的相关文章

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

1.前言 在<Erlang入门:构建application练习4(进程link的作用)>一文中, 提到了一个问题: 如果系统进程内部发生了错误而异常退出,将会出现什么情况? 在application中,像bank_center这样的系统进程,如果终止了,整个系统就无法正常运行,为了让bank_center意外终止时能自动重启,这里就要请Erlang的监督树出来帮忙了. 演示项目bank3目录结构: 2.编写监督树回调模块bank_sup.erl 监督树的回调模块只有一个函数init/1 %%

[Erl_Question08] Erlang怎么构建一个application?

问题: 当我们把一个项目中所有的supervision tree通过一个简单的函数game: start(),会发现这个树结构特别复杂,只能有一个根节点,然后一直扩展. 这里,这就是application出现的原因,设计一个可以随时开关的子块(application).比如:上图中的log app, db app ,game app, connect app .. 这样对这些应用的开关管理就非常方便啦,[试想你如果用supervisor,运行时还要手动去停进程树,然后还要移除监控树,还要做cle

Erlang入门:构建application练习3(随机启动)

1.构建目录结构 我这示例中,项目文件夹为bank1 ebin目录:存放编译出来的beam文件 include目录:存放hrl文件 src目录:存放erl源文件 2.创建Emakefile文件 编译时,编译器会根据Emakefile文件做相应处理 { [ 'src/*' %% 指定erl源文件目录 ] ,[ debug_info ,{i, "include"} %% 指定include文件夹 ,{outdir, "ebin"} %% 指定编译出来的beam文件存放目

Erlang入门:构建application练习4(进程link的作用)

1.示例项目(bank)简介 bank_server.erl是为客户服务的进程回调模块 bank_center.erl是为银行服务中心的进程回调模块 客户(bank_server)每年都要扣除年费 所有年费都交给银行服务中心(bank_center) 客户服务使用示例: 创建用户:bank_server:create_account(myname, 100). 用户存钱:myname ! {deposit, 10}. 用户取钱:myname ! {cash1, 20}. myname ! {ca

Erlang入门:构建application练习2

1.定义application回调模块 2.定义application资源描述文件 资源描述文件名要和application名称一致,并且后缀为.app, 如:bank.app 然后把资源描述文件放在erlang能搜索到的路径下 3.启动application application:start(bank). 和练习1相比,这里的application启动之前, 不需要自己调用application:load/1加载application 启动application监控器查看applicatio

Erlang入门(二)—并发编程

Erlang中的process——进程是轻量级的,并且进程间无共享.查了很多资料,似乎没人说清楚轻量级进程算是什么概念,继续查找中...闲话不提,进入并发编程的世界.本文算是学习笔记,也可以说是<Concurrent Programming in ERLANG>第五张的简略翻译. 1.进程的创建    进程是一种自包含的.分隔的计算单元,并与其他进程并发运行在系统中,在进程间并没有一个继承体系,当然,应用开发者可以设计这样一个继承体系.    进程的创建使用如下语法: Pid = spawn(

Erlang入门(五)——补遗

暂时搞不到<Programming Erlang>,最近就一直在看Erlang自带的例子和Reference Manual.基础语法方面有一些过去遗漏或者没有注意的,断断续续仅记于此. 1.Erlang的保留字有: after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when xor 基本都是些用于

webpack入门——构建简易版vue-cli

用vue-cli1/2搭建一个vue项目时,可以看到有很多关于webpack配置的文件.我们不需要知道那些繁琐的配置文件有什么作用,只需在控制台输入npm run dev,项目自动启动,我们就可以愉快的写业务代码了. 虽然vue-cli帮我们做好了一切,我们就能不用学webpack了吗?NoNoNo...现代前端工程师必备的技能就是模块化构建打包项目,不信去那些招聘网站的前端JD看看.废话不多说,下面让我们用webpack构建一个简单的vue-cli. 第一步:安装NodeJS(webpack基

erlang 入门笔记

1.下载安装erlang,我使用的是windows 64 版本的,直接安装,设置环境变量%ERL_HOME%\bin (设置环境变量只是使用方便而已,可设置也可不设置) 2.从cmd 中 启动erlang命令行,如果没有设置环境变量,则需要cd到erlang/bin中 C:\Users\Administrator>erl Eshell V6.4 (abort with ^G) 1> 3.编写helloworld.erl (erlang源文件后缀为.erl) %%erlang中 标识代码结束使用