在gen_server中实现定时功能(方法二)
来源:互联网 发布:二维码扫描 java sdk 编辑:程序博客网 时间:2024/06/14 08:32
转载请注明,来自:http://blog.csdn.net/skyman_2001
在gen_server的init、handle_call、handle_cast 或handle_info函数里的返回元祖的第3个元素是个整数,代表timeout
的间隔(单位为ms),则时间到时会发送timeout消息给进程,该消息通过handle_info()来处理。
代码如下:
-module(otp_test).-behaviour(gen_server).-export([start_link/0]).%% gen_server callbacks-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).start_link() -> gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).init([]) -> %% Note we must set trap_exit = true if we %% want terminate/2 to be called when the application %% is stopped process_flag(trap_exit, true), io:format("~p starting~n",[?MODULE]), {ok, state, 5000}. % 5000是timeout间隔handle_call(_Msg, _From, State) -> {noreply, State, 5000}. handle_cast(_Msg, State) -> {noreply, State, 5000}.%% handle timeout messagehandle_info(timeout, State) -> io:format("tick~n",[]),{noreply, State, 5000}.terminate(_Reason, _State) -> io:format("~p stopping~n",[?MODULE]), ok.code_change(_OldVsn, State, _Extra) -> {ok, State}.
运行:
otp_test:start_link().
结果:
otp_test starting {ok,<0.59.0>} tickticktickticktick...
- 在gen_server中实现定时功能(方法二)
- 在gen_server中实现定时功能(方法一)
- 用超时来实现gen_server的定时
- Quartz(二)在Spring中动态启动,暂定,添加,删除定时功能
- 如何在Web程序中实现定时运行的功能?
- JS中如何实现sleep功能 js定时执行方法
- 在PHP3中实现SESSION的功能(二)
- gen_server实现
- 实现mysql定时任务的方法(二)
- 在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍
- 如何在Web工程中实现任务计划调度(定时功能)
- 在PB中实现热键功能的方法
- 在PHP中通过POST方法实现文件上传功能
- 关于在PLSQL中实现DEBUG调试功能的方法
- 一种在智能对话中实现上下文功能的方法
- 一种在智能对话中实现上下文功能的方法
- 在Activity中实现定时屏保(定时10秒,间隔5秒钟切换图片)
- Quartz入门(一)-----实现定时功能
- How to write a SCI paper (一)
- 数据库连接池
- How to write a SCI paper (二)
- I2C总线的EEPROM(24C08)Linux驱动(原创)
- 超简单的变化测试
- 在gen_server中实现定时功能(方法二)
- 发现ibm packaging utility的魅力
- How The Kernel Manages Your Memory
- 基于FlashPaper的文档播放器
- 数据库设计经验谈
- Struts2.0 xml文件的配置(package,namespace,action)
- vim 编辑二进制文件
- Lolapps收购Flash游戏引擎Fliso
- httpwatch的timechart 解析