2 han73748196 han73748196 于 2017.08.31 10:19 提问

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

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

9个回答

danee1
danee1   2017.08.31 10:35
已采纳

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

huang931027
huang931027   2017.08.31 10:22

用quartz吧,定时作业

shaobo7705601
shaobo7705601   2017.08.31 10:31

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

shaobo7705601
shaobo7705601 回复han73748196: 前台展示,一定要有人打开才能看。你每天的值算出来可以先存数据库或者缓存,一个固定的地。前台有请求展示的时候直接把存的值展示就好。定时任务是为了算值吧
3 个月之前 回复
han73748196
han73748196 就是我每一天的值会不一样,想从数据库查询值返回前台展示
3 个月之前 回复
Small_Mouse0
Small_Mouse0   Ds   Rxr 2017.08.31 10:43
qq_38005982
qq_38005982   2017.08.31 10:56

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

eqmaster
eqmaster   2017.08.31 11:24

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

P923284735
P923284735   2017.08.31 11:56

用quartz定时任务

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2017.08.31 12:49
 后台用quartz定时任务,处理完成结果后,前台有websocket,后台一旦执行定时任务后就往前台推送数据。
qq_24029841
qq_24029841   2017.09.01 09:28

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

Csdn user default icon
上传中...
上传图片
插入图片