Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel 需要Apache Camel在后台每隔10分钟调用一个自定义处理器_Apache Camel_Background Process - Fatal编程技术网

Apache camel 需要Apache Camel在后台每隔10分钟调用一个自定义处理器

Apache camel 需要Apache Camel在后台每隔10分钟调用一个自定义处理器,apache-camel,background-process,Apache Camel,Background Process,在我们的项目中,我们正在使用ApacheCamel来满足REST、SFTP、SOAP等多个端点的需求。这是作为计划作业的一部分调用的,如果有太多记录需要处理,这些作业有时会运行数小时。 有时,我们的工作(或者更确切地说,流程)在任何一条驼峰路线上都会停滞数小时。 我们的要求是终止此类长时间运行/卡住的作业。 所以,我们要寻找的是,一旦我们使用context.start()启动一个作业,就可以创建一个自定义处理器,它可以每X分钟调用一次。 在该定制处理器中,我们将编写定制逻辑,以决定是继续还是终止

在我们的项目中,我们正在使用ApacheCamel来满足REST、SFTP、SOAP等多个端点的需求。这是作为计划作业的一部分调用的,如果有太多记录需要处理,这些作业有时会运行数小时。 有时,我们的工作(或者更确切地说,流程)在任何一条驼峰路线上都会停滞数小时。 我们的要求是终止此类长时间运行/卡住的作业。 所以,我们要寻找的是,一旦我们使用context.start()启动一个作业,就可以创建一个自定义处理器,它可以每X分钟调用一次。 在该定制处理器中,我们将编写定制逻辑,以决定是继续还是终止作业等

我们在Camel中是否有这样的机制来编写定制处理器,该处理器可以在主运行Camel上下文中由Camel频繁触发?
非常感谢您的帮助/指点。

您可以添加另一条周期性触发的驼峰路由,并调用处理器。对于周期触发器,您可以从多个组件中进行选择

  • >无依赖项,但最基本,基于JDK定时器)
  • >无依赖项,更多选项,基于ScheduledExecutorService)
  • >需要驼峰石英,选项加载,支持Cron表达式
  • >仅在Camel 3中,支持Cron表达式

您可以使用以固定时间间隔运行任务。我们的要求是以预定时间间隔中断主上下文并恢复作业。主要目标是在作业运行时,我们将从另一个服务接收中断信号。我们有一个定制的处理器,它将在处理每条路由后验证和处理中断信号。如果作业在任何特定路径上阻塞,则它不响应中断信号。这就是为什么我们要按预定的间隔检查中断信号。