sql 组件在 Camel 中作为生产者的行为是什么?

What is behaviour of sql component serve as producer in Camel?

我正在阅读 camel-example-sql,它有两条定义如下的路由:

<!-- route that generate new orders and insert them in the database -->
<route id="generateOrder-route">
  <from uri="timer:foo?period=5s"/>
  <transform>
    <method ref="orderBean" method="generateOrder"/>
  </transform>
  <to uri="sql:{{sql.insertOrder}}"/>
  <log message="Inserted new order ${body[id]}"/>
</route>

<!-- route that process the orders by picking up new rows from the database
     and when done processing then update the row to mark it as processed -->
<route id="processOrder-route">
  <from uri="sql:{{sql.selectOrder}}?consumer.onConsume={{sql.markOrder}}"/>
  <to uri="bean:orderBean?method=processOrder"/>
  <log message="${body}"/>
</route>

我能理解第一个路由,它每 5 秒触发一次。但是第二条路由什么时候触发呢?

第二条路由使用{{sql.selectOrder}}中的SQLselect语句查询数据库,如果有结果集,则每一行都成为路由的消息。如果结果集为空,则不会路由任何消息。

第二条路线使用每 500 毫秒运行一次的调度程序(例如 consumer.delay)选项。