发表于: 2018-06-09 23:41:04
2 891
今天完成的任务:
和袁磊两个人的接口文档基本搞定,他写的前台,我写的后台
Spring定时任务的三种实现方式:
1.Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。
2.使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。
3.Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多.
Quartz
第一种:继承org.springframework.scheduling.quartz.QuartzJobBean类,
(1)首先要定义一个作业类:
//调度工厂实例化后,经过timeout时间开始执行调度
public void setTimeout(int timeout) {
this.timeout = timeout;
}
/**
* 要调度的具体任务
*/
@Override
protected void executeInternal(JobExecutionContext context)
throws JobExecutionException {
System.out.println("定时任务执行中…");
}
(2)然后要配置作业类:
<bean name="job1" class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass" value="com.gy.Job1" />
<property name="jobDataAsMap">
<map>
<entry key="timeout" value="0" />
</map>
</property>
</bean>
JobDetailBean有两个属性,jobclass属性是我们定义的任务类,jobdataasmap即该任务类中需要注入的属性值。
(3)配置触发器
第一种simpleTriggerBean,只支持按照一定频度调用任务,如每隔30分钟运行一次
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="job1" />
<property name="startDelay" value="0" /><!-- 调度工厂实例化后,经过0秒开始执行调度 -->
<property name="repeatInterval" value="2000" /><!-- 每2秒调度一次 -->
</bean>
第二种CronTriggerBean支持到指定时间运行一次
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="job1" />
<!—每天12:00运行一次 -->
<property name="cronExpression" value="0 0 12 * * ?" />
</bean>
(4)配置调度工厂
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTrigger" />
</list>
</property>
</bean>
如果不继承类的话需要在配置文件的时候声明一个factorybean。
今天遇到的问题:
1.data返回的类型应该是什么?如果返回一个对象data里面还用嵌套一个对象?
比如查看某文章 是 data: article: 属性 属性 还是data:属性 属性
2.有些接口是合并写好还是分开写好
3.前端返回的字段中还用不用加userid,因为登录的时候已经存在cookie中作为sessionID会返回来
4.签到那个界面还是有问题,我们是返给前端一个array?那时间戳判断是哪一天,我们后端自己做还是交给前端做?怎么判断每月的多少天?
今天的收获:
在和袁磊互相检查接口文档的时候发现了不少问题
明天的计划:
敲定最后的文档,完成细节实现
评论