【问题标题】:Quartz Generator and exception handlingQuartz 生成器和异常处理
【发布时间】:2011-11-07 02:30:18
【问题描述】:

我的流程如下:

<flow name="ChatListener">
    <quartz:inbound-endpoint jobName="eventTimer"
        repeatInterval="${chatListener.pollingInterval}">
        <quartz:event-generator-job />
    </quartz:inbound-endpoint>
    <filter ref="ActiveTrainingFilter" />

    <component>
        <singleton-object class="com.ChatListener.ChatListener" />
    </component>



    <not-filter>
        <payload-type-filter expectedType="org.mule.transport.NullPayload" />
    </not-filter>

    <collection-splitter />

    <vm:outbound-endpoint path="ChatMsgs"
        exchange-pattern="one-way" />
    <default-exception-strategy>
        <vm:outbound-endpoint path="ErrorMsgs"/>
    </default-exception-strategy>
</flow>

现在,实际发生的是生成器调用单例组件,该组件执行一些 DB 检索并返回一个 java bean 类的集合,我稍后将其拆分(空过滤器以防我想停止流)。

我的问题是 - 假设我连接到数据库时出错并且组件的 oninitialise 失败。什么会阻止生成器一遍又一遍地尝试调用组件? (并且每次都会产生错误)。

在我看来,好像我处理了一些不太正确的事情,那么实现它来处理异常有什么好处?

有什么想法吗?提前致谢!

【问题讨论】:

    标签: quartz-scheduler mule


    【解决方案1】:

    我会尝试以下方法:

    • 以全局方式声明石英端点,
    • 在流​​程中使用它。
    • 创建自定义异常策略并在流程中使用它。
    • 在此自定义异常策略中注入全局石英端点。
    • 在此策略中,如果捕获的异常是您认为具有不可恢复故障特征的异常,请调用 endpoint.stop()。

    清除错误情况后,您需要通过 JMX 重新启动端点。

    【讨论】:

    • 好的,我会在你的其他一些答案中试探性地问同样的问题 - 但是向策略注入端点实际上意味着什么?
    • 我的意思是使用Spring注入。
    猜你喜欢
    • 2013-11-20
    • 2013-12-19
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2012-07-07
    相关资源
    最近更新 更多