1.在对应的模块内写好需要定时执行的代码(下图中红色的部分)
上图中的第一个地方,并不是简简单单的引入OfficeDocumentServiceInter.java就好了,还需要在ns-face-quartz里的spring/rmi-client-oa.xml进行配置(大小写之类的要注意)
rmi是远程调用,在这里,写在oa里的定时器执行的代码是要被quartz模块调用的,所以需要配置rim接口(rmi-clien-oa是调用接口、rmi-server是暴露借口给别的模块调用)
2.在对应的模块内的spring/rmi-server.xml中开放对应的接口(如:/ns-face-oa/spring/rmi-server.xml)
3.在ns-face-quartz模块中添加对应的quartz-*.xml配置
添加两个bean<bean id="eTLAverageSalaryForBigScreenTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="自定义的bean名称" />
</property>
<property name="cronExpression">
<!-- 每天凌晨1点执行一次 -->
<value>0 0 1 * * ?</value>
</property>
</bean>
<bean id="自定义的bean名称"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="在ns-core-quartz中定义类" />
</property>
<property name="targetMethod">
<value>在ns-core-quartz中定义类中的方法,该方法就是实现了对应的定时任务接口的方法</value>
</property>
</bean>
将第一个bean的id插入到xml文件开头几行的list标签内
4.在/ns-face-quartz/resources/ns-face-quartz.properties开启oa定时任务
上图中的 “远程调用服务地址” 要和对应模块的rmi的注册地址一样,如:
上图中的
oa.rmi.address=rmi://localhost:1097(#远程调用基础服务的地址)
要和ns-face-oa.properties里的
rmi.registry.port=1097(#本应用提供远程服务的端口)
保持一样