2

我正在使用 JDBC 入站端点,使用查询从 mysql 中提取值,最后将其放入文件中。我能够获取 DB 中的值。但我的流程无限次运行。谁能帮我。请找到我的配置 xml。提前致谢

<jdbc-ee:mysql-data-source name="MySQL_Data_Source" user="root" password="root" url="jdbc:mysql://localhost:3306/mydb" transactionIsolation="UNSPECIFIED" doc:name="MySQL Data Source"/>
<jdbc-ee:connector name="Database" dataSource-ref="MySQL_Data_Source" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database" transactionPerMessage="false"/>
<flow name="JDBCFlowFlow1" doc:name="JDBCFlowFlow1">
    <jdbc-ee:inbound-endpoint queryKey="employeeSelect" queryTimeout="-1" pollingFrequency="1000" connector-ref="Database" doc:name="Database">
        <jdbc-ee:query key="employeeSelect" value="select * from employeedetails"/>
    <jdbc-ee:transaction action="NONE"/> 
    </jdbc-ee:inbound-endpoint>
    <logger message="---------------Result: #[payload]------------------------" level="INFO" doc:name="Logger"/>
    <file:outbound-endpoint path="C:\Documents and Settings\Desktop\mule\OUTPUT FILE1" responseTimeout="10000" doc:name="File"/>
</flow>
4

2 回答 2

0

根据 JDBC Transport 的 Mule 文档:

“入站 SELECT 查询是定期执行的查询(根据连接器上设置的 pollingFrequency)。”

因此,您所经历的行为是可以预料的。

避免定期轮询的一种可能策略是创建一个入站石英端点,其中“重复计数”设置为 1,并让骡子“组件”负责实际的数据库检索。

于 2013-08-12T11:21:33.067 回答
0

使用带有 Cron 表达式的 Poll 组件将有助于任何此类场景,因为您可以根据需要安排轮询间隔。以下链接可帮助您根据要求确定 cron 表达式。

http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html

于 2016-08-23T09:34:21.750 回答