简单流程:使用JDBC和文件(在Mule中)但在循环中运行

时间:2013-08-12 05:36:05

标签: mule mule-studio

我正在使用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>

2 个答案:

答案 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