worker_pool的例子
鉴于poolboy的坑,pooler不支持r18,又有在知乎上看到大神推荐worker_pool这个进程池框架(工作者进程在创建时崩溃,worker_pool不受影响),所以研究了下,贴个小例子
my_pool.erl
- -module(my_pool).
- -export([start/, stop/]).
- -export([my_overrun_handler/,do_test/,do_crash/]).
- start()->
- wpool:start(),
- start_pool(),
- ok.
- stop()->
- stop_pool(),
- wpool:stop(),
- ok.
- start_pool()->
- wpool:start_sup_pool(my_pool,
- [
- {overrun_warning,},
- {
- overrun_handler,{?MODULE,my_overrun_handler}
- },
- {workers, },
- {worker, {test_worker, []}}
- ]
- ),
- ok.
- stop_pool()->
- wpool:stop_pool(my_pool),
- ok.
- my_overrun_handler(Report) ->
- io:format("my_overrun_handler ~p~n", [Report]).
- do_test()->
- wpool:call(my_pool,{info},best_worker).
- do_crash()->
- wpool:call(my_pool,{crash},best_worker).
test_worker.erl
- -module(test_worker).
- -behaviour(gen_server).
- -export([start_link/, format_status/]).
- -export([init/, handle_call/, handle_cast/,handle_info/, terminate/, code_change/]).
- -record(state, {}).
- start_link([Args]) ->
- gen_server:start_link(?MODULE, [Args], []).
- init([Args]) ->
- io:format("working thread init ~p,~p~n", [self(), Args]),
- process_flag(trap_exit, true),
- {ok, #state{}}.
- handle_call({info}, _From, State) ->
- io:format("info~n"),
- {reply, _Reply = ok, State};
- handle_call({crash}, _From, _State) ->
- = ,
- {noreply, crash};
- handle_call(_Request, _From, State) ->
- {reply, _Reply = ok, State}.
- handle_cast(_Msg, State) ->
- {noreply, State}.
- handle_info({'EXIT', _Pid, Reason}, State) ->
- io:format("exit reason ~p~n", [Reason]),
- case Reason of
- normal ->
- io:format("normal exit trapped~n"),
- {stop, normal, State};
- other ->
- io:format("other exit trapped~n"),
- {noreply, State}
- end;
- handle_info(_Info, State) ->
- {noreply, State}.
- terminate(_Reason, _State) ->
- io:format("terminate ~p,~p,~p~n", [_Reason, _State, self()]),
- ok.
- code_change(_OldVsn, State, _Extra) ->
- {ok, State}.
- format_status(_Opt, _StatusData) ->
- erlang:error(not_implemented).
worker_pool的例子的更多相关文章
- SQLServer地址搜索性能优化例子
这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...
- C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)
第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...
- REGEX例子
作为REGEX的例子,代码9.3显示了一个给定的文件有多少行,具有给定的模式,通过命令行输入(注:有更有效率的方式来实现这个功能,如Unix下的grep命令,在这里只是给出了另一种方式).这个程序像下 ...
- CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子
CSharpGL(25)一个用raycast实现体渲染VolumeRender的例子 本文涉及的VolumeRendering相关的C#代码是从(https://github.com/toolchai ...
- 简单例子了解View的事件分发
什么是事件分发 我们在写自定义ViewGroup或者自定义View的时候经常要处理用户的点击事件,如果我们的View在最底层,他在很多ViewGroup里面,我们如何让我们的点击事件准确传递到View ...
- 简单的例子了解自定义ViewGroup(一)
在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...
- kqueue例子
网络服务器通常都使用epoll进行异步IO处理,而开发者通常使用mac,为了方便开发,我把自己的handy库移植到了mac平台上.移植过程中,网上居然没有搜到kqueue的使用例子,让我惊讶不已.为了 ...
- 今天有群友不是很清楚htm直接存数据库的危害,我简单举个例子
通过这个案例就知道为什么不要把原生的html放数据库了 常见的几种转码 常用的几种显示方法 只有原生html和最下面一种弹框了,变成了持久xss 如果是Ajax的方式,请用@Ajax.JavaS ...
- ElasticSearch 5学习(5)——第一个例子(很实用)
想要知道ElasticSearch是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
随机推荐
- Java-->实现断点续传(下载)
--> 断点续传: 就像迅雷下载文件一样,停止下载或关闭程序,下次下载时是从上次下载的地方开始继续进行,而不是重头开始... --> RandomAccessFile --> poi ...
- tyvj1011 - 传纸条 ——DP
题目链接:https://www.tyvj.cn/Problem_Show.aspx?id=1011 状态转移方程: f[k,x1,x2] = max(f[k-1,x1,x2],f[k-1,x1-1, ...
- numpy常用函数
numpy.ndarray.astype 更改np.array的类型.
- Codeforces Round #110 (Div. 2)
Codeforces Round #110 (Div. 2) C. Message 题意 给两个长度不超过2000的字符串\(s,u\),仅由小写字母构成. 找出\(s\)的一个子串\(t\),通过3 ...
- Hammer.js移动端触屏框架的使用
hammer.js是一个多点触摸手势库,能够为网页加入Tap.Double Tap.Swipe.Hold.Pinch.Drag等多点触摸事件,免去自己监听底层touchstart.touchmove. ...
- 《苹果开发之Cocoa编程》挑战1 创建委托 练习
<苹果开发之Cocoa编程>第4版 P87 新建一个单窗口应用程序,设置某对象为窗口的委托,当用户调整窗口尺寸时,确保窗口高度为宽度的2倍. 需要实现的委托方法为:-(NSSize)win ...
- 黑马程序员——JAVA基础之简述集合collection
------- android培训.java培训.期待与您交流! ---------- 集合: 为什么出现集合类? • 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对 ...
- mave之:java的web项目必须要的三个jar的pom形式
jsp-api javax.servlet-api jstl <!-- jsp --> <dependency> <groupId>javax.servlet< ...
- 【转】NSString属性什么时候用copy,什么时候用strong?
原文网址:http://www.cocoachina.com/ios/20150512/11805.html 我们在声明一个NSString属性时,对于其内存相关特性,通常有两种选择(基于ARC环境) ...
- 对象属性操作-包含kvc---ios
#import <Foundation/Foundation.h> @class Author; @interface Books : NSObject{ @private NSStrin ...