在gen_server中实现定时功能(方法一)
来源:互联网 发布:oracle数据库管理规范 编辑:程序博客网 时间:2024/05/22 15:08
转载请注明,来自:http://blog.csdn.net/skyman_2001
使用erlang:send_after()函数,代码如下:
-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]).-define(INTERVAL, 5000).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]), erlang:send_after(?INTERVAL, self(), {trigger, 0}), {ok, 0}.handle_call(_Msg, _From, State) -> {noreply, State}.handle_cast(_Msg, State) -> {noreply, State}.handle_info({trigger, N}, State) -> io:format("tick ~p~n", [N]),erlang:send_after(?INTERVAL, self(), {trigger, N+1}),{noreply, State}.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>}tick 0tick 1tick 2tick 3tick 4tick 5tick 6tick 7tick 8tick 9tick 10...
- 在gen_server中实现定时功能(方法一)
- 在gen_server中实现定时功能(方法二)
- 用超时来实现gen_server的定时
- Quartz入门(一)-----实现定时功能
- 如何在Web程序中实现定时运行的功能?
- JS中如何实现sleep功能 js定时执行方法
- 在PHP3中实现SESSION的功能(一)
- gen_server实现
- mysql定时任务实现的方法(一)
- 在 Lotus Notes 中设置邮件定时发送的方法及代理功能介绍
- 如何在Web工程中实现任务计划调度(定时功能)
- Quartz(一)在Spring中设置动态定时任务
- 在PB中实现热键功能的方法
- 在PHP中通过POST方法实现文件上传功能
- 关于在PLSQL中实现DEBUG调试功能的方法
- 一种在智能对话中实现上下文功能的方法
- 一种在智能对话中实现上下文功能的方法
- 在Activity中实现定时屏保(定时10秒,间隔5秒钟切换图片)
- spin lock
- Linux下安全文件权限设置(转)
- 微软技术节(TechFest 2010)最前沿技术汇总
- 一句话解释imodel studio平台技术特性
- 修改linux的时间时区
- 在gen_server中实现定时功能(方法一)
- 显示十六进制字符数组
- [转] 漫谈NodeJS
- svn移动文件(目录)
- Windows/MFC数据类型
- 模拟的数据库连接池与DBUtils工具包
- 世界上最好用的纯前端模板【没有之一】,AceTemplate高调亮相。
- Windows 下安裝 Vim 插件 snipMate 解決方案
- 【.Net MF网络开发板研究-01】IP地址设定及简单web演示