java事件触发计时器后二十四小时后只执行一次业务逻辑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java事件触发计时器后二十四小时后只执行一次业务逻辑相关的知识,希望对你有一定的参考价值。
先用事件触发计时器,然后计时器二十四小时后执行一个业务逻辑层的方法一次。
java中有个定时任务 java.util.TimerTask
用法很简单
class MyTask extends java.util.TimerTask@Override
public void run()
// 这个任何所执行的代码
java.util.Timer timer = new Timer(true); //treu就是守护线程
MyTask task = new MyTask();
//开始执行任务,第一个参数是任务,第二个是延迟时间,第三个是每隔多长时间执行一次
timer.schedule(task, 0 , 1000 * 60 * 60 * 24);追问
我想写一个事件,触发事件后会主动触发计时器,问,触发事件后怎么触发计时器。
追答java.util.Timer timer = new Timer(true); //treu就是守护线程
MyTask task = new MyTask();
//开始执行任务,第一个参数是任务,第二个是延迟时间,第三个是每隔多长时间执行一次
timer.schedule(task, 0 , 1000 * 60 * 60 * 24);
这几行代码就是开始执行定时器
是不是把触发事件里加一个定时器,每次触发后,定时器就在指点事件执行一次任务,然后关掉
追答麻烦你看一下,我的注释,每隔多长时间执行一次的,当然你也可以只做一次
追问我的问题就是只执行一次,已采纳
参考技术A事件触发后,计算出需要执行业务逻辑的时间,事件数据放消息队列或者持久化。
用定时器每分钟(或每小时)检查,根据事件数据判断是否有当前时间需要执行的业务逻辑。有就执行,没有就跳过。
React中事件节流防抖
参考技术A 方法一方法二
写法类似。。。
debounce 和 throttle 各有特点,在不同的场景要根据需求合理的选择。如果事件触发是高频但是有停顿时,也就是结束后一段时间内触发一次,期间如果再次触发,计时刷新,直到该段时间过后触发,可以选择debounce;在事件连续不断高频触发时,一段时间内最多触发一次,只能选择 throttle ,因为 debounce 可能会导致一段时间内动作只被执行一次,界面出现闪烁。
以上是关于java事件触发计时器后二十四小时后只执行一次业务逻辑的主要内容,如果未能解决你的问题,请参考以下文章
魔兽自带地图编辑器触发事件中的循环函数和周期事件怎么设置啊 求高手指点
QT中的Qtimer 里start(100)开始计时以后,timeout是只触发一次,还是说每到100ms就触发一次??