一个.mflow文件中有两个流

时间:2014-01-14 10:38:50

标签: web-services mule esb

我想问一下如何使用石英启动另一个流程。

单独启动每个流程(一个是使用IMAP,另一个是使用Quartz),但是如果可能的话,我希望将它们放在同一个文件中,或者至少在同一个项目中。我不知道这是什么好习惯,所以我让你决定。

因此,Flow1从IMAP开始,用邮件(原始)完成工作,然后转到其他子流。

Flow2从石英开始并完成它的工作(我想添加的那个)

两个流都有相同的变量并且具有相似的工作,但当然不必同步。

现在,我该如何实现这一目标?

我试过了:

<flow name="Flow1" doc:name="Flow1">
    <imaps:inbound-endpoint doc:name="IMAP" 
        host="imap.gmail.com" port="993" responseTimeout="10000"
    ........
</flow>


<flow name="Flow2" doc:name="Flow2">
    <quartz:outbound-endpoint jobName="FlowStarter" repeatInterval="10000" responseTimeout="10000" doc:name="Quartz">
        <quartz:event-generator-job groupName="QuartzGenGroup" jobGroupName="QuartzGenGroup">
            <quartz:payload>wwqda</quartz:payload>
        </quartz:event-generator-job>
    </quartz:outbound-endpoint>
    <logger message="Quartz started at #[server.dateTime.toCalendar().toString()] #[payload]" level="INFO" doc:name="Logger"/>
</flow>

当我开始这个时,Flow2从未给出任何输出。

我正在使用Mule Studio 3.5.0

谢谢!

1 个答案:

答案 0 :(得分:1)

在Flow 2中使用quartz:inbound-endpoint而不是quartz:outbound-endpoint。出站端点不会触发工作流本身。它需要额外的传入事件。

请查看http://2rdscreenretargeting.blogspot.ru/2012/12/how-to-schedule-jobs-using-mule-studio.html,了解有关Mule中Quartz用法的详细信息。