添加quartz定时任务

来源:互联网 发布:java接收post请求数据 编辑:程序博客网 时间:2024/06/05 18:06

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(#本应用提供远程服务的端口)

保持一样


0 0
原创粉丝点击