java 怎么样让代码一天就执行一次,根据时间来判断,前提 不能使用任务调度,因为在前端这个页面每三分钟刷新一次,访问的jsp其中有些方法不需要执行,这些方法一天执行一次就可以
这种钻牛角尖的问题,悬赏不够
不用任务调度,用多线程写个无限循环,在里面根据你给定时间,隔一段时间我就运行去检查下,到了你指定的时间,我就执行你所要执行的任务,这样符合你的要求吗?
设置个开关,第一次刷新,开关=true,方法执行一次,之后开关=false关闭,每次刷新检测过了一天没有,过了就打开开关=tru
spring/applicationContext.xml中配置定时器 定时每天执行一次不就行啦
<task:scheduled-tasks>
<!-- ref是工作类 method是工作类中要执行的方法 cron是执行时间 0 0 0 * * ?是每天0点执行一次 0 */1 * * * ? 一分钟一次 -->
<task:scheduled ref="recycleTask" method="removeRecycle" cron="0 0 0 * * ?"/> <!-- 定时器 :回收站-->
<task:scheduled ref="messageTask" method="removeMessage" cron="0 0 0 * * ?"/> <!-- 定时器 :消息盒子-->
</task:scheduled-tasks>
循环加上一个计时就好了,到了标记的点就结束
现成的quartz 包。新建个job,里面放个task就好了。这种周期性进行刷新和执行的,很多项目用得很普遍。很成熟的东西
不用纠结。这个问题很简单。 利用缓存+过期时间。
1. 第一次被调用,查找缓存,无数据,执行此函数 , 并将结果放入 内存中(一个对象,静态变量都行) 并写入一个字段过期时间(当前时间+24小时)。
2. 第二次 调用 查找缓存,有数据,判断过期时间。未过期返回结果, 过期 重复 上述 1 操作。
你可以每次都访问数据库时间,存一个时间,对比时间来实现
自己开一个线程, 线程里面写个循环 计算出你的间隔时间, 循环完一次 线程睡眠对应的间隔时间.