发表于: 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),通配符。由于"月份中的日期"和"星期中的日期"这两个元素互斥的,必须要对其中一个设置?


【今日完成】

把剩下接口完善了,配了一个定时器


【明日计划】

明天和老大去西南交大宣讲会


返回列表 返回列表
评论

    分享到