-
Notifications
You must be signed in to change notification settings - Fork 3.8k
/
applicationContext-alarmJob.xml
53 lines (45 loc) · 2.98 KB
/
applicationContext-alarmJob.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:batch="http://www.springframework.org/schema/batch"
xmlns:task="http://www.springframework.org/schema/task" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/batch http://www.springframework.org/schema/batch/spring-batch.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">
<batch:job id="alarmJob">
<batch:step id="alarmPartitionStep">
<batch:partition step="alarmStep" partitioner="alarmPartitioner">
<batch:handler task-executor="alarmPoolTaskExecutorForPartition"/>
</batch:partition>
</batch:step>
<batch:listeners>
<batch:listener ref="jobFailListener"/>
</batch:listeners>
</batch:job>
<batch:step id="alarmStep">
<batch:tasklet task-executor="alarmExecutor" throttle-limit="${alarm.worker.maxSize:2}">
<batch:chunk reader="reader" processor="processor" writer="writer" commit-interval="1"/>
</batch:tasklet>
</batch:step>
<bean id="alarmExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="queueCapacity" value="1024" />
<property name="waitForTasksToCompleteOnShutdown" value="false" />
<property name="maxPoolSize" value="${alarm.worker.maxSize:2}" />
<property name="corePoolSize" value="${alarm.worker.coreSize:2}" />
</bean>
<bean id="alarmPartitioner" class="com.navercorp.pinpoint.batch.alarm.AlarmPartitioner"/>
<bean id="reader" class="com.navercorp.pinpoint.batch.alarm.AlarmReader" scope="step"/>
<bean id="processor" class="com.navercorp.pinpoint.batch.alarm.AlarmProcessor" scope="step"/>
<bean id="writer" class="com.navercorp.pinpoint.batch.alarm.AlarmWriter" scope="step"/>
<task:executor id="alarmPoolTaskExecutorForPartition" pool-size="1"/>
<bean id="batchAlarmDao" class="com.navercorp.pinpoint.batch.dao.mysql.MysqlAlarmDao"/>
<bean id="batchAlarmService" class="com.navercorp.pinpoint.batch.service.AlarmServiceImpl">
<constructor-arg ref="batchAlarmDao"/>
</bean>
<bean id="alarmDao" class="com.navercorp.pinpoint.batch.alarm.dao.pinot.PinotAlarmDao"/>
<bean id="retryableAdvisor" class="org.springframework.retry.interceptor.RetryOperationsInterceptor"/>
<aop:config>
<aop:pointcut id="retryableMethods" expression="execution(* com.navercorp.pinpoint.batch.alarm.dao.pinot.PinotAlarmDao.*(..))"/>
<aop:advisor advice-ref="retryableAdvisor" pointcut-ref="retryableMethods"/>
</aop:config>
</beans>