han73748196
han73748196
2017-08-31 02:19
采纳率: 95.5%
浏览 2.4k

java定时器,需要每天凌晨2点进行

用了好多的定时器方法但是都不太理想。因为还得返回给前台数据进行刷新页面。
在前台用的js定时器会导致崩溃。。时间太长了好像。。望大神给个解决方法,
能够定时执行方法并返回前台数据。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • danee1
    danee1 2017-08-31 02:35
    已采纳

    看你的描述,这样的需求还是 很少见的。 要分成两部分,一是定时,而是推送。
    先说定时:定时 Java 自己原生的 timeTask、quartz框架 、定时线程池 等都可以实现。
    而前台推送,这就有点问题了。 按照楼主描述 要刷新页面,也就是说 要求 浏览器一直开着,而推送,可以使用 长连接、H5的websocket、甚至一些已有的公共类库。
    用js的简单实现的话,可以使用 setInterval,或者 setTimeOut ,先获取定时时间,再定时获取服务端时间,比对时间差,然后发送请求来刷新数据。
    比如:进入页面发起请求 获取 定时时间(2点)和服务器时间(1点),计算 下次发请求的时间,也就是1个小时后再发请求获取数据。
    你说导致崩溃,估计是你一直发长连接,不断请求,被浏览器认为不安全,拦截了或者响应超时了?

    点赞 评论
  • huang931027
    IAmObject 2017-08-31 02:22

    用quartz吧,定时作业

    点赞 评论
  • shaobo7705601
    伯乐_博 2017-08-31 02:31

    返回前台需要怎么处理,只是展示吗?具体说明一下

    点赞 评论
  • Small_Mouse0
    鼠小 2017-08-31 02:43
    点赞 评论
  • qq_38005982
    我本狂儒 2017-08-31 02:56

    你要用什么样的?如果是在Spring.xml里的话看看这个,我自己写的 http://blog.csdn.net/qq_38005982/article/details/77235783
    看不懂的话,第一行有别人的文章比我写的清楚
    如果是在java的类里配。。。对不起不用看了

    点赞 评论
  • eqmaster
    若海软件科技 2017-08-31 03:24

    也许你需要一个webim或者类似的机制

    点赞 评论
  • P923284735
    小菜鸟阿庆 2017-08-31 03:56

    用quartz定时任务

    点赞 评论
  • wojiushiwo945you
    毕小宝 2017-08-31 04:49
     后台用quartz定时任务,处理完成结果后,前台有websocket,后台一旦执行定时任务后就往前台推送数据。
    
    点赞 评论
  • qq_24029841
    我还不够强 2017-09-01 01:28

    quartz定时任务,前端websocket心跳保活,发送数据

    点赞 评论

相关推荐