我正在使用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>
答案 0 :(得分:0)
根据JDBC Transport的Mule文档:
“入站SELECT查询是定期执行的查询(根据连接器上设置的pollingFrequency)。”
因此,您所体验的行为是可以预期的。
避免定期轮询的一种可能策略是创建一个入站石英端点,其中'repeatCount'设置为1,让mule'组件'负责实际的数据库检索。
答案 1 :(得分:0)
使用带有Cron表达式的Poll组件可以帮助任何此类scnearios,因为您可以根据需要安排轮询间隔。以下链接可帮助您根据要求决定cron表达式。
http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html