当前位置: 首页 > 软件库 > 程序开发 > 常用工具包 >

maestro Erlang

Erlang 池管理
授权协议 MIT
开发语言 ErLang
所属分类 程序开发、 常用工具包
软件类型 开源软件
地区 不详
投 递 者 经景辉
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

maestro 是 Erlang 池管理程序。

为什么?

短暂 I/O 任务(比如数据库访问)的大型 worker 池会因为太多迁入和迁出活动而拖垮单个 poolboy 管理器。

怎样做?

使用简单的方法,启动多个池;随机迁出。maestro 需要了解每个池的工作流,当每个池都是同一类型的加载模式时,将会提升复杂性,降低性能,没有什么明显的优势。

使用:

MaestroName = many_pools,
Conf = [% maestro options
        {name, MaestroName},
        {pool_module, poolboy},
        {pool_count, 3},
        {use_named_pools, false},
        % poolboy options
        {worker_module, fabulous_worker},
        {size, 100},
        {max_overflow, 50}],
{ok, _} = maestro:start(Conf),
{SomePool, Worker1} = maestro:checkout(MaestroName),
thing_done = gen_server:call(Worker1, do_your_thing),
ok = maestro:pool_checkin(SomePool, Worker1),
also_done = maestro:transaction(
        MaestroName,
        fun (Worker) -> gen_server:call(Worker, do_your_other_thing) end),
ok = maestro:stop(MaestroName).
  • 之前在内网(windows)进行编译erlang的时候,不管我编译哪个简单的程序都会报错     Java代码  *.erl 1: systax error before "-"     -module(hi).(hi.erl的第一行是如此)      第一行竟然就报错了。。。。我那个郁闷啊,这个问题困了我好多天啊,一直不知道怎么解决,我是谷歌之后,bing,yahoo,baidu,soso...

  • ErLang中的标点符号 ErLang语法中充满了一些约定。大写字母开头的名字(比如Address),表示一个变量,包括参数、局部变量等;小写字母开头的单词(比如ok),表示一个常量,叫做atom(原子的意思),包括常量名、函数名、模块名等。 ErLang的注释用%开头。ErLang用下划线“_”表示任意变量,类似于Java的switch语法里面的default选项。 ErLang脱胎于Prolo

  •   badarg 参数错误,参数格式或类型错误 badarith 算术表达式错误,算术表达式中含有错误的参数 {badmatch,V} 模式匹配错误,V指具体的发生匹配错误的数值 function_clause 函数子句错误,没有找到匹配的函数子句 {case_clause,V} case匹配错误,没有找到匹配的case pattern if_clause if子句错误,没有找到为ture的if子

  • 显式生成错误的方法: exit(Why) 广播一个信号给当前进程链接的所有进程。 throw(Why) 抛出一个调用者可能想要捕捉的异常错误。 error(Why) 指示奔溃性错误,非常严重的错误。 捕捉错误,try...catch try FuncOrExpressionSeq of Pattern1[when Guard1] -> Expressions1; Pattern2[when G

  • https://www.cnblogs.com/zhongwencool/p/error_exit_throw.html

  • erlang中的预处理类似C中的预处理:   包含:-include(File). File是一个表示路径的字符串,其中可以含有$VAR表示的环境变量引用,可以是绝对路径,也可以是相对路径,相对路径的话,将从当前工作目录cwd,当前正在编译的文件所在的路径以及include选项指定的系列路径中依次按顺序寻找。   宏:-define(Const, Replacement). -define(Fun

  • 链接:http://www.erlang.org/doc/apps/erts/match_spec.html 解释摘要: A match_spec used in ets can be described in this informal grammar: MatchExpression ::= [ MatchFunction, ... ] MatchFunction ::= { MatchHea

  •  上一篇文章我在最后提到了使用ets:fun2ms在ETS中进行复杂的查询,详情点击这里: [Erlang 0007] Erlang ETS Table 二三事 最近我在Erlang社区发现有人提了这样一个关于MatchSpecification问题: http://erlang.2086793.n4.nabble.com/RE-select-count-bug-td2087163.html --

  • 顺序代码的错误处理 抛出错误的函数 抛错函数 说明 exit(Why) 想要终止当前进程时使用,如果这个异常错误没有被捕捉到,信号{‘EXIT’,Pid,Why}就会被广播给当前进程链接的所有进程。 throw(Why) 抛出一个调用者可能想要捕捉的异常错误,注明了被调用函数可能会抛出这个异常错误 error(Why) 是指示“崩溃性错误”,也就是调用者没有准备好处理的非常严重的问题。 try…c

  • 1. Erlang 是什么 一种“小众”语言(排名50之外) 一种函数式语言 (变量只能赋值一次) 一种动态类型语言(变量类型在运行时决定,代码需要编译后才能执行,与Python,Ruby等不一样) 一种强类型语言 一种面向并发(Concurrency Oriented)的语言 《一场茶杯里的风暴》(刊于《程序员》06年9、10期),《 轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统》是

  •   npc.erl:27: syntax error before:  npc.erl:10: function init/1 undefined  报这样的错,27行删掉,重新编写。

  • Oh no!Not another programming language!Do I have to learn yet another one?Aren't there enough already? I can understand your reaction.There are loads of programming languages,so why should you learn a

 相关资料
  • 静态内存池接口 结构体 struct   rt_mempool   内存池控制块 更多...   类型定义 typedef struct rt_mempool *  rt_mp_t   内存池类型指针定义   函数 rt_err_t  rt_mp_init (struct rt_mempool *mp, const char *name, void *start, rt_size_t size,

  • 我使用作为我的数据源实现,我的代码获取连接并关闭连接,如下所示: 当我完成连接工作时,我将关闭它 我的问题是:确实是关闭的,所以当连接像一样关闭时,数据源是如何工作的。我听说datasource connection close并不是真正的close,只是release,但我在datasource类中找不到release API。我想知道datasource如何管理数据库连接的创建、关闭和释放。

  • 我们正在用Java重写来自PHP的web应用程序。我认为,但我不是很确定,我们可能会在连接池方面遇到问题。应用程序本身是多租户的,是“独立数据库”和“独立模式”的组合。 对于每个Postgres数据库服务器实例,可以有一个以上的数据库(命名为schemax_XXX),其中包含一个以上的模式(模式是租户)。注册时,可能会发生以下两种情况之一: 在编号最高的schema_XXX数据库中创建新的租户模式

  • 本文向大家介绍Android实现电池管理系统,包括了Android实现电池管理系统的使用技巧和注意事项,需要的朋友参考一下 一、Android 电池服务 Android电池服务,用来监听内核上报的电池事件,并将最新的电池数据上报给系统,系统收到新数据后会去更新电池显示状态、剩余电量等信息。如果收到过温报警和低电报警,系统会自动触发关机流程,保护电池和机器不受到危害。 Android电池服务的启动和

  • 本文向大家介绍浅谈Android中线程池的管理,包括了浅谈Android中线程池的管理的使用技巧和注意事项,需要的朋友参考一下 说到线程就要说说线程机制 Handler,Looper,MessageQueue 可以说是三座大山了 Handler Handler 其实就是一个处理者,或者说一个发送者,它会把消息发送给消息队列,也就是Looper,然后在一个无限循环队列中进行取出消息的操作 mMyHa

  • 问题内容: 假设您正在使用一个对象,并且正在使用构造函数的设置来传递一个初始化函数,然后该初始化函数将在全局命名空间中创建资源。假设资源具有上下文管理器。如果上下文管理的资源必须在流程的整个生命周期中都可以使用,但是在最后要进行适当的清理,您将如何处理它的生命周期呢? 到目前为止,我有点像这样: 从这里开始,池进程可以使用资源。到现在为止还挺好。但是,由于类不提供or或参数,因此处理清理工作有些棘

  • 背景:本周我刚刚开始学习Quarkus,尽管我以前使用过一些流媒体平台(特别是scala中的http4s/fs2)。 工作与夸克斯反应性(与兵变)和任何反应性数据库客户端(兵变反应性postgres,反应性elasticsearch,等)我有点困惑如何正确管理阻塞调用和线程池。 quarkus文档建议使用注释命令式代码或cpu密集型代码,以确保将其转移到工作池以不阻塞IO池。这是有道理的。 考虑以

  • 我正在使用Jedis在Redis中执行大量的插入/读取。Redis服务器正在使用默认配置。当我开始使用几个线程时,问题出现了,异常情况是: redis.clients.jedis.exceptions.JedisConnection异常:java.net.Socket异常: Pipe quebrado(写入失败) 我搜索了很多关于这个问题的信息,但找不到问题的原因或解决方法。我用来执行这些测试的代