Netty中用于服务器端计划任务/事件的最佳方法

时间:2013-05-27 03:33:37

标签: java netty tcp-ip

我正在尝试在Netty 4.0中实现一个服务器应用程序,它通过TCP / IP套接字与客户端通信。 一旦建立连接,客户端将进行初始连接。 服务器每隔X分钟向客户端发送一条ping消息,每个客户端的X可能不同。 一旦客户端成功获得“ping”,客户端将尝试上传/传输文件到服务器。 服务器接收该文件,并将其写入磁盘。

我想知道Netty中最好的做法是什么,主要是调度部分(以cron为基础发送ping消息并接收文件)

我在网上看了一下,发现有一个Uptime ClientHandler示例,它及时连接到服务器,但这是一个客户端,它也在ClientBootstrap中使用了一些方法(https://github.com/netty/netty/blob/master/example/src/main/java/io/netty/example/uptime/UptimeClientHandler.java#L78

我还找到了http://netty.io/4.0/api/io/netty/util/HashedWheelTimer.html,但找不到任何有用的示例来详细说明Netty 4.0中的用法。

非常感谢任何帮助,非常感谢!!

1 个答案:

答案 0 :(得分:3)

基本上你要么使用IdleStateHandler和一个ChannelStateHandler实现,它将对IdleStateEvent作出反应或直接使用Channel的eventLoop。

例如,eventLoop用法可能是这样的:

Channel channel = ...
channel.eventLoop().schedule(new PingTask, delay, time unit);