netty实现定时调度

功能:实现客户端向服务端定时发消息。

public class MyClientHandler extends ChannelInboundHandlerAdapter {

    /**
     * 给服务端发送消息
     * @param ctx
     * @throws Exception
     */
    @Override
    public void channelActive(ChannelHandlerContext ctx) throws RejectedExecutionException {
        ctx.channel().eventLoop().scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                ctx.writeAndFlush(Unpooled.copiedBuffer("来自客户端的消息", CharsetUtil.UTF_8));
            }
        }, 1,3, TimeUnit.SECONDS);

    }



      ---------------------省略其他方法-----------------------------


}

服务端接收的消息:

2、schedule的用法

ctx.channel().eventLoop().schedule(new Runnable() {
    @Override
    public void run() {
        ctx.writeAndFlush(Unpooled.copiedBuffer("来自客户端的消息", CharsetUtil.UTF_8));
    }
},3,TimeUnit.SECONDS);

方法说明: 

/**
 * 延迟执行,并不会周期性执行
 * @param callable 延迟执行的任务
 * @param delay 延迟时间
 * @param unit 延迟时间单位
 */
public ScheduledFuture<?> schedule(Runnable command,long delay, TimeUnit unit);

/**
 * 延迟执行,并不会周期性执行
 * @param callable 延迟执行的任务
 * @param delay 延迟时间
 * @param unit 延迟时间单位
 */
public <V> ScheduledFuture<V> schedule(Callable<V> callable,long delay, TimeUnit unit);

/**
 * 在延迟initialDelay后定时执行任务
 * @param command 要执行的任务
 * @param initialDelay 初始化延迟
 * @param period 两次任务开始执行的延迟
 * @param unit 时间单位
 * @return
 */
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command,
                                              long initialDelay,
                                              long period,
                                              TimeUnit unit);
/**
 * 在延迟initialDelay后定时执行任务
 * @param command 要执行的任务
 * @param initialDelay 初始化延迟
 * @param delay 下一次任务开始距前一次任务结束的时间
 * @param unit 时间单位
 * @return
 */
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command,
                                                 long initialDelay,
                                                 long delay,
                                                 TimeUnit unit);

Netty高级用法-EventLoop实现定时调度任务_channelhandlercontext 定时-CSDN博客 

深入剖析Netty之定时任务实现_netty定时任务-CSDN博客

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

种麦南山下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值