【问题标题】:How to run a query every 2 minutes in mule using quartz如何使用石英在骡子中每 2 分钟运行一次查询
【发布时间】:2014-08-19 12:05:49
【问题描述】:

我想每 2 分钟执行一次查询,但出现以下错误。

--------------------------------------------------------------------------------
Exception stack is:
1. No serializer found for class org.mule.transport.NullPayload and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (org.codehaus.jackson.map.JsonMappingException)
  org.codehaus.jackson.map.ser.impl.UnknownSerializer:52 (null)
2. No serializer found for class org.mule.transport.NullPayload and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (org.codehaus.jackson.map.JsonMappingException) (org.mule.api.transformer.TransformerException)
  org.mule.module.json.transformers.ObjectToJson:107 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.mule.transport.NullPayload and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) )
    at org.codehaus.jackson.map.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:52)
    at org.codehaus.jackson.map.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:25)
    at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:610)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************

我的流程如下。

 <flow name="testdbFlow1" doc:name="testdbFlow1">

        <quartz:inbound-endpoint responseTimeout="10000" doc:name="Quartz" jobName="CronJobSchedule" repeatInterval="0" cronExpression="0 0/2 * ? * MON-FRI" repeatCount="1">                   
        <quartz:event-generator-job/>
        </quartz:inbound-endpoint>
        <jdbc-ee:outbound-endpoint queryKey="select_qry" queryTimeout="-1"  connector-ref="Database" doc:name="Database"/>
        <json:object-to-json-transformer doc:name="Object to JSON"/>
        <echo-component doc:name="Echo"/> 

    </flow>

【问题讨论】:

    标签: java mule flow


    【解决方案1】:

    通过添加quartz:payload 尝试以下操作:-

    <flow name="testdbFlow1" doc:name="testdbFlow1">
    <quartz:inbound-endpoint responseTimeout="10000" doc:name="Quartz" jobName="CronJobSchedule" repeatInterval="0" cronExpression="0 0/2 * ? * MON-FRI" repeatCount="1">                   
            <quartz:event-generator-job>
    <quartz:payload>quartzSchedular started</quartz:payload>
    </quartz:event-generator-job>
            </quartz:inbound-endpoint>
            <jdbc-ee:outbound-endpoint queryKey="select_qry" queryTimeout="-1"  connector-ref="Database" doc:name="Database"/>
            <json:object-to-json-transformer doc:name="Object to JSON"/>
            <echo-component doc:name="Echo"/> 
    
        </flow>
    

    更新:-json:object-to-json-transformer 之后使用记录器,如下所示:-

    <logger message="#[message.payload]" level="INFO" doc:name="Logger"/>
    

    并移除回显组件...

    并在 JDBC 组件中制作 exchange-pattern="request-response",如下所示:-

    <jdbc-ee:outbound-endpoint queryKey="select_qry" queryTimeout="-1"  connector-ref="Database" exchange-pattern="request-response" doc:name="Database"/>
    

    【讨论】:

    • 感谢您在控制台中回复 echo "quartzSchedulat started" print..但我想在控制台中打印所有数据库记录..
    • 如果我有超过 1 条记录,我想在数据库中检查一个问题,而不是在触发我的删除查询之后。是否可以使用表达式?我该怎么做???
    • 如果你想检查你是否有超过 1 条记录,那么你需要使用 SQL 查询.. 例如.. 如果你想检查数据库中是否有超过 1 条记录相同的 id .. 然后使用 Java 类,然后编写一个 SQL 查询,类似于 int countNo=SELECT COUNT(*) FROM your_table WHERE user_id =Your ID here .... 现在,如果您的变量 countNo 等于或大于 1,那么记录存在超过 1 .. 您需要在此之后添加一个 Java 类并从那里调用 JDBC 查询(如 SQL 计数)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    相关资源
    最近更新 更多