84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
比如要做一个5点下线的团购,但是如果不用定时器做的话,5点后没人访问,就一直是开启状态,直到第一个人去触发下架动作,这期间要写数不清的烂代码,恳请前辈点拨
业精于勤,荒于嬉;行成于思,毁于随。
石英
quartz到点定时触发, 或者采用Lazy模式,等一个前端用户触发了这个团购,业务逻辑中检查是否已经过期了,不好的地方在于业务耦合度高了
两个方法: 1. 用crontab指定5点开始执行下架任务。 2. 跑一个服务不断轮询时间,查询到时间要下架的商品,并执行下架任务。
必需quartz
描述的业务逻辑没有看明白,quartz是标配 如果在spring3.x的环境下,最简单的方式: 定时任务的类添加@Component注解,执行任务的方法添加@Scheduled(cron = "0/5 * * * * ?")注解。 让Spring扫描到该类:spring配置文件中加<task:annotation-driven />这个配置, 其中@Scheduled注解是(org.springframework.scheduling.annotation.Scheduled)
<task:annotation-driven />
用quartz是最靠谱的。 但是就像楼主自己说的
5点后没人访问,就一直是开启状态,直到第一个人去触发下架动作
其实这样子做也是蛮靠谱的。就是每次刷这个团购页面都需要去判断一下这个团购是否已经过期。 因为你不能完全依靠定时任务,定时任务只是在确定的时候去做一件事,但是做件事还是需要时间的。所以你最后还需要需要在团购页面渲染的时候做校验的
做个job server
Java中用quartz框架比较好,如果只是简单的任务,直接使用jdk自带的定时任务也可以
org.springframework.scheduling.timer.ScheduledTimerTask
用spring配置一个任务计划,配置好要执行的class就可以了,这样子自己只任务计划的管逻辑内容即可。 或者需要更高级功能,可以使用Job/schedule相关的框架
但是这个功能似乎windows上是利用windows的任务计划调用bat的方式比较多,bat下可以通过java命令来运行一个jar。linux下同样系统也提供了任务计划,调用shell即可
比较复杂的任务,比如定时定点,用Quartz,项目中用到Spring的话,Spring与Quartz可完美结合。 一般简单的任务,每隔多久执行的,可以直接使用jdk自带的。
石英
quartz到点定时触发,
或者采用Lazy模式,等一个前端用户触发了这个团购,业务逻辑中检查是否已经过期了,不好的地方在于业务耦合度高了
两个方法:
1. 用crontab指定5点开始执行下架任务。
2. 跑一个服务不断轮询时间,查询到时间要下架的商品,并执行下架任务。
必需quartz
描述的业务逻辑没有看明白,quartz是标配
如果在spring3.x的环境下,最简单的方式:
定时任务的类添加@Component注解,执行任务的方法添加@Scheduled(cron = "0/5 * * * * ?")注解。
让Spring扫描到该类:spring配置文件中加
<task:annotation-driven />
这个配置,其中@Scheduled注解是(org.springframework.scheduling.annotation.Scheduled)
用quartz是最靠谱的。
但是就像楼主自己说的
其实这样子做也是蛮靠谱的。就是每次刷这个团购页面都需要去判断一下这个团购是否已经过期。
因为你不能完全依靠定时任务,定时任务只是在确定的时候去做一件事,但是做件事还是需要时间的。所以你最后还需要需要在团购页面渲染的时候做校验的
做个job server
Java中用quartz框架比较好,如果只是简单的任务,直接使用jdk自带的定时任务也可以
org.springframework.scheduling.timer.ScheduledTimerTask
用spring配置一个任务计划,配置好要执行的class就可以了,这样子自己只任务计划的管逻辑内容即可。
或者需要更高级功能,可以使用Job/schedule相关的框架
但是这个功能似乎windows上是利用windows的任务计划调用bat的方式比较多,bat下可以通过java命令来运行一个jar。linux下同样系统也提供了任务计划,调用shell即可
比较复杂的任务,比如定时定点,用Quartz,项目中用到Spring的话,Spring与Quartz可完美结合。
一般简单的任务,每隔多久执行的,可以直接使用jdk自带的。