Apache Camel:在一条路线上管理多个石英?

Apache Camel: manage several quartz in one route?

我有很多 quartz 来安排任务,例如(ping、电子邮件等)。是否可以在 Apache Camel 的一条路线中管理许多石英,或者我必须为每个石英创建路线?

错误:

Caused by: org.apache.camel.FailedToStartRouteException: Failed to start route route9 because of Multiple consumers for the same endpoint is not allowed: quartz://myTimer?cron=0+0/1+*+*+*+?+*

代码:

@Component
public class TimingRoute extends RouteBuilder {

    static final Logger LOGGER = LoggerFactory.getLogger(TimingRoute.class);

    @Override
    public void configure() throws Exception {
        // Every 3 minutes: 0+0/3+*+*+*+?+*
        // Every 10 seconds: 0/10+*+*+*+*+?+*
        from("quartz://myTimer?cron=0+0/1+*+*+*+?+*") //
                .setBody().simple("Current time is " + LocalDateTime.now()) //
                .log("${body}").to("direct:processPollingEmail");

        from("quartz://myTimer?cron=0+0/1+*+*+*+?+*") //
                .setBody().simple("Current time is " + LocalDateTime.now()) //
                .log("${body}").to("direct:processPing");
    }
}

您在那里所做的已经是“为每个石英创建路线”。 我相信您收到此错误的唯一原因是您为两个石英端点提供了相同的 ID。尝试将它们命名为“myTimer”和“myTimer2”(或任何更有意义的名称,如“emailTimer”和“pingTimer”),你应该没问题。