【发布时间】:2018-04-18 11:54:58
【问题描述】:
我必须从数据库中读取行并将这些行传递给服务激活器
在 rowmapper 的帮助下,使用我们能够实现的自己的框架发送邮件,问题是我们需要根据服务激活方法中的成功或失败,用动态状态和 errorstackstrace 更新相应行的列。
<int-jdbc:inbound-channel-adapter id="emailReqestChannel"
query="select * from email_requests where email_request_status = 'NEW'"
update="update email_requests set email_request_status = 'SUCCESS' where email_request_id in (:email)"
max-rows-per-poll="10"
data-source="dataSource" row-mapper="emailRequestRowMapper">
<int:poller fixed-rate="1000">
<int:transactional />
</int:poller>
</int-jdbc:inbound-channel-adapter>
<int:service-activator input-channel="emailReqestChannel" ref="emailRequestMessageHandler" />
<bean id="jdbcMessageHandler"
class="com.company.selfservice.jdbc.handler.JdbcMessageHandler" />
<bean id="emailRequestMessageHandler"
class="com.company.selfservice.jdbc.handler.EmailRequestMessageHandler" />
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<int:poller default="true" fixed-rate="10000"/>
<int:channel id="dataChannel">
<int:queue />
</int:channel>
<int:channel id="emailReqestChannel">
<int:queue />
</int:channel>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.gjt.mm.mysql.Driver" />
<property name="url" value="${database.connection_url}" />
<property name="username" value="${database.user}" />
<property name="password" value="${database.password}" />
</bean>
<bean id="emailRequestRowMapper"
class="com.company.selfservice.jdbc.handler.EmailRequestRowMapper" />
【问题讨论】: