You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Camel Consumer配置Quartz调度后,如何使poll方法按Quartz规则执行?

解决方案

核心问题是你的自定义端点仍在使用Camel默认的调度器,没有切换到Quartz实现,需要做以下修改:

  1. 让端点创建Quartz调度器
    在MyEndPoint中重写createScheduler()方法,使用Camel提供的QuartzSchedulerFactory生成Quartz调度器,替换默认的调度器实现:

    @Override
    protected ScheduledExecutorService createScheduler() throws Exception {
        QuartzSchedulerFactory factory = new QuartzSchedulerFactory();
        factory.setCamelContext(getCamelContext());
        factory.setEndpoint(this);
        return factory.createScheduler();
    }
    
  2. 确保消费者使用端点的调度器
    你的MyConsumer继承ScheduledPollConsumer时,已经通过父类构造器关联了端点,只要端点返回的是Quartz调度器,消费者就会自动使用它来调度poll任务,无需修改消费者代码。

  3. 验证配置正确性

    • 确认URI中的scheduler.cron表达式格式正确(你当前的0 */2 * * * ?是每2分钟执行一次的规则,没问题)
    • 可以在端点初始化时打印调度器实例类型,确认是Quartz的实现类

完成以上修改后,poll方法就会按照你配置的cron规则执行,不再使用默认的500ms间隔。


内容的提问来源于stack exchange,提问作者eborisow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:57:20