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   Rxr 2017.08.31 10:22

用quartz吧,定时作业

shaobo7705601
shaobo7705601   2017.08.31 10:31

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

shaobo7705601
shaobo7705601 回复han73748196: 前台展示,一定要有人打开才能看。你每天的值算出来可以先存数据库或者缓存,一个固定的地。前台有请求展示的时候直接把存的值展示就好。定时任务是为了算值吧
11 个月之前 回复
han73748196
han73748196 就是我每一天的值会不一样,想从数据库查询值返回前台展示
11 个月之前 回复
Small_Mouse0
Small_Mouse0   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
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java Timer 定时每天凌晨1点执行任务
import java.util.TimerTask; /** * 执行内容 * @author admin_Hzw * */ public class Task extends TimerTask { public void run() { System.out.println("我有一头小毛驴!"); } } import java.util.Calendar; imp
java Timer 定时每天凌晨23点执行任务
/** * *任务执行 */ public class TimerTask extends java.util.TimerTask implements StdMasterServiceSoap{ @Override public void run() { System.out.println("任务开始!");  String startTime = "2015-05-10";
设置定时任务为每天凌晨2点执行和每小时执行一次?
每天凌晨2点  0 0 2 * * ?和每天隔一小时 0 * */1 * * ?例1:每隔5秒执行一次:*/5 * * * * ?例2:每隔5分执行一次:0 */5 * * * ?在26分、29分、33分执行一次:0 26,29,33 * * * ?例3:每天半夜12点30分执行一次:0 30 0 * * ? (注意日期域为0不是24)每天凌晨1点执行一次:0 0 1 * * ?每天上午10:15...
oracle job 实例 :每天凌晨2点调用过程删日志。
oracle job 实例 :每天凌晨2点调用过程删日志。 --创建存储过程 create or replace procedure clear_wa_log  as    begin  execute immediate 'truncate  table  wa_log';    end;     --存储过程测试 begin    clear_wa_log;    e
Linux中的定时任务crontab
在Linux中,可以使用crontbab指定定时任务。         使用命令crontab -e即可编辑crontab,在里面添加需要的定时任务。用户的定时任务文件为 /var/spool/cron/用户名 ,crontab -e命令将相当于vim /var/spool/cron/用户名。 1、如何写crontab         crontab中每一行代表一个任务,每个任务由周期和任务
实验楼楼赛19之备份日志文件
日志备份的需求描述如下: 为 shiyanlou 用户添加计划任务 每天凌晨2点的时候定时打包 /var/log 下的 dpkg.log,mysql.log,fontconfig.log 三个文件到 /home/shiyanlou/backup/ 目录 命名格式为 年-月-日.tar,比如今天是2017年10月23日,那么文件名为2017-10-23.tar,若有重名则覆盖第一步
实验楼挑战:备份日志
crontab命令备份日志题目小明是一个服务器管理员,他需要每天备份论坛数据(这里我们用日志替代),备份当天的日志并删除之前的日志。而且备份之后文件名是年-月-日的格式。alternatives.log在/var/log/下面。目标1.为shiyanlou用户添加计划任务 2.每天凌晨3点的时候定时备份alternatives.log到/home/shiyanlou/tmp/目录 3.命名格
timerTask实现每天定时一段时间内执行定时任务
timerTask实现每天定时一段时间内执行定时任务,这个是自己写的代码,有些和我的项目有关,可以删掉,但是其主要的都在里面,我写了注释。
Linux基础入门(三)-- 学习笔记
备份日志小明是一个服务器管理员,他需要每天备份论坛数据(这里我们用日志替代),备份当天的日志并删除之前的日志。而且备份之后文件名是年-月-日的格式。alternatives.log在/var/log/下面。目标为shiyanlou用户添加计划任务 每天凌晨3点的时候定时备份alternatives.log到/home/shiyanlou/tmp/目录 命名格式为年-月-日,比如今天是2017年4
mysql定时任务,每天凌晨1点执行
执行mysql语句 DO后是需要执行的sqlCREATE EVENT IF NOT EXISTS temp_event ON SCHEDULE EVERY 1 DAY STARTS DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 1 DAY), INTERVAL 1 HOUR) ON COMPLETION PRESERVE ENABLE ...