当前位置: 首页 > 知识库问答 >
问题:

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

段干弘扬
2023-03-14

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

我想知道在Netty中做这件事的最佳方法是什么,主要是调度部分(在cron基础上发送ping消息并接收文件)

我在网上查看了一下,发现有一个正常运行时间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个答案

徐飞尘
2023-03-14

基本上,您可以使用IdleStateHandler和ChannelStateHandler实现,它们将对IdleStateEvents做出反应,或者直接使用Channel的ventLoop。

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

Channel channel = ...
channel.eventLoop().schedule(new PingTask, delay, time unit);
 类似资料:
  • 我正在尝试在Netty中实现一个基本的多客户端聊天,我有一点被卡住了!代码是: } } 我想先读一下留言

  • 我在Spring 3中使用@Scheduled annotation。我需要每周或每两周运行一些任务,所以我使用cron表达式作为参数,例如。 我的问题是,如果我将创建必须每7天运行一次的计划任务,并且在第6天我将重新启动服务器(与战争重新部署),它会重置这个计划任务(我需要再次等待7天)还是它会保存其状态并在第7天触发此任务?

  • 本文向大家介绍Laravel6.0.4中将添加计划任务事件的方法步骤,包括了Laravel6.0.4中将添加计划任务事件的方法步骤的使用技巧和注意事项,需要的朋友参考一下  此版本包括计划任务事件、新的 JSON 断言方法和所有最新更改。让我们来看看这个版本中的一些亮点新特性: 首先,在 TestResponse 类中添加了一个 assertJsonPath() 断言,对于在 JSON 响应中使用

  • 关于netty的第二个问题。我们只是从它开始。我们有一个设计,我们需要使用 <罢工> 具有长轮询的HTTP HTTP流。我们估计5k-50k连接的用户打开连接。我们知道tomcat不会处理,所以我们看着netty完成任务。 设计应该足够简单,但我们不能使用websocket(我们希望在netty上使用hornetQ,并提供websocket/stomp支持),但我们不能。 因此,基本上,我们将在连

  • 我们有一个Spring+JPA web应用程序。我们使用两个tomcat服务器,它们运行两个应用程序并使用相同的数据库。 我们的应用程序requirmemnt之一是预形成cron调度任务。 谢了!

  • 问题内容: 我想创建具有低负载的简单服务器。目标是使一些javascript客户端可以通过WebSocket访问以Java实现的某些功能。我正在寻找最佳的库来使用- 它应该简单,健壮等。现在我考虑3个替代方案-jWebSocket-jetty-netty最好的是什么?还是其他呢? 提前致谢 问题答案: jWebSocket现在包括Jetty8.0引擎,该引擎包括SSL,并且在其之上还包括许多功能。