发表于: 2017-11-15 20:35:27
0 740
【今日完成】
今天主要完成了除微信外的接口,还配了一个Quartz定时器。
这里稍微介绍一下:
/**
* Created by Jeff on 2017/11/15.
*/
public class QuartzUtil {
private static final Log log = LogFactory.getLog(QuartzUtil.class);
@Autowired
private UserService userService;
public void reSetTimes(){
try {
log.info(userService.countUserIds());
List<Long> list =userService.getUserIds(0,Integer.MAX_VALUE);
log.info(list);
Integer count =userService.countUserIds();
log.info(count);
while (count >0){
User user =userService.getObjectById(list.get(count-1));
user.setVerificationTimes(0);
userService.update(user);
count--;
}
} catch (ServiceException e) {
e.printStackTrace();
} catch (ServiceDaoException e) {
e.printStackTrace();
}
}
这里我用普通类,实现了一个方法,想在零点重置数据库的一个字段。
用Spring配置,一个普通类即可,不需要特别实现什么接口或继承什么类,所以特别好。
然后在Spring配置一个定时器,即可使用,相当简单。
<!-- Quartz定时器配置 -->
<bean id="QuartzUtil" class="com.ptteng.academy.home.util.QuartzUtil"/>
<bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="QuartzUtil"/>
</property>
<property name="targetMethod"> <!-- 要执行的方法名称 -->
<value>reSetTimes</value>
</property>
</bean>
<bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="SpringQtzJobMethod"></property>
<property name="cronExpression" value="0 1 0 * * ?"></property>
</bean>
<bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="CronTriggerBean"/>
</list>
</property>
</bean>
今天自己测了一下,发现亲测可用。
这里的cron表达式表示时间有点意思:
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。
按顺序依次为
秒(0~59)
分钟(0~59)
小时(0~23)
天(月)(0~31,但是你需要考虑你月的天数)
月(0~11)
天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT)
年份(1970-2099)
其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?
【今日完成】
把剩下接口完善了,配了一个定时器
【明日计划】
明天和老大去西南交大宣讲会
评论