点点滴滴 从今天做起

搞了几年开发,终于觉得自己像码农了..

今天在做定时器。

首先给server发个时间,我们在这个时间client要做一些事情。

然后常连接,等到这个时间client定时器处理任务。

问题很简单,定时器要与client的PC时间修改无关。

常连接可以定时15秒与server对时,可随时拿到server时间。

1 系统登陆时 ,首先判断是否需要启动定时器。如果一天一次,时间一过就不用启动。注意判断过时与否要拿server时间。

2 需要定时的任务有多少,放一起处理。参数就是时间和任务类别。

3 利用Timer定时任务。比如定时一分钟刷新下,如果时间合理就启动任务。否则 不处理,返回。

具体实现:

利用Timer的scheduleAtFixedRate加入任务,定时器启动时间,执行周期。比如timer.scheduleAtFixedRate(task, new Date(), 60*1000)

问题:

1 如果client修改时间?改Timer为ScheduledExecutorService.scheduleAtFixedRate(task, 15, 60*1000,TimeUnit.SECONDS).

2 比对时间一致的方法?可以拿小时和分钟对时。当然也可以拿两个时间差long值比较,[-30,30)以内算是一分钟。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值