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是如何使用的,最快的方式就是通过一个简单的例子,第一个例子将会包括基本概念如索引.搜索.和聚合等,需求是关于公司管理员工的一些业务. 员工文档索引 业务首先需要存储员 ...
随机推荐
- jquery easyui datebox 时间控件默认显示当前日期的实现方法
jquery easyui datebox 时间控件默认显示当前日期的实现方法 直接class easyui-datebox后添加一个value="true"就可以
- 给linux添加一个回收站
http://blog.chinaunix.net/uid-26805356-id-3492419.html 都知道linux没有回收站,如果一不小心 rm -rf之后,很难恢复,所以就编写了一个回收 ...
- 使用AjaxPro
1:后台注册 protected void Page_Load(object sender, EventArgs e) { AjaxPro.Utility.RegisterTypeForAjax(ty ...
- UI学习笔记---第十六天XML JSON解析
一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML ...
- Java动物声音模拟器
abstract class Animal{ abstract void cry(); abstract String getAnimalName(); } class Simulator{ void ...
- leetcode 94 Binary Tree Inorder Traversal ----- java
Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...
- HDU-4455 Substrings(DP)
题目大意:给一个长度为n的整数序列,定义egg(i,j)表示区间[i,j]中不同的数的个数.q次询问,每次询问x,表示求所有长度为x连续区间的 egg 之和. 题目分析:定义dp(len)表示所有长度 ...
- kuangbin_ShortPath H (POJ 3660)
本来想自己写个bfs让他顺着胜负边爬 走到拐弯处就判定无法确定次序 然后我发现有多余的边并不会自己省略掉 要写个O(n^3)的删掉多余边这都不如Floyd了 看奚政学长写的是拓扑序也能解 然后在理解看 ...
- <button>会自动提交表单吗?
点击button以后,表单先由ajax提交,然后无论后台返回什么结果,页面都会跳转到表单action属性指定的路劲,也就是login.html使用的是html.jquery.javascript,后台 ...
- Axure RP里单选按钮组
选中要编组的单选项,然后照下图所示给这一组单选编一个名字.